htmlgrid 1.1.1 → 1.1.2
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/History.txt +8 -0
- data/Manifest.txt +2 -3
- data/lib/htmlgrid/component.rb +1 -1
- data/lib/htmlgrid/composite.rb +1 -1
- data/lib/htmlgrid/errormessage.rb +1 -1
- data/lib/htmlgrid/grid.rb +258 -275
- data/lib/htmlgrid/label.rb +14 -14
- data/lib/htmlgrid/list.rb +23 -23
- data/lib/htmlgrid/version.rb +1 -1
- data/test/suite.rb +0 -2
- data/test/test_add_row.rb +75 -56
- data/test/test_component.rb +3 -3
- data/test/test_composite.rb +210 -178
- data/test/test_grid.rb +19 -25
- data/test/test_helper.rb +9 -0
- data/test/test_interaction_list.rb +242 -215
- data/test/test_label.rb +4 -0
- data/test/test_list.rb +1 -7
- data/test/test_select.rb +10 -19
- metadata +18 -5
- data/LICENCE.txt +0 -515
- data/test/rebuild.rb +0 -39
data/lib/htmlgrid/label.rb
CHANGED
@@ -71,20 +71,20 @@ module HtmlGrid
|
|
71
71
|
yield self if(@component.respond_to?(:label?) && @component.label?)
|
72
72
|
yield @component
|
73
73
|
end
|
74
|
-
|
75
|
-
key
|
76
|
-
|
77
|
-
if
|
78
|
-
key
|
79
|
-
|
80
|
-
|
74
|
+
def to_html(context)
|
75
|
+
key = @label_key
|
76
|
+
label = @lookandfeel.lookup(key)
|
77
|
+
if !label && @component.respond_to?(:name)
|
78
|
+
key = @component.name
|
79
|
+
label = @lookandfeel.lookup(key)
|
80
|
+
end
|
81
81
|
state = @session.state
|
82
|
-
if
|
83
|
-
label +=
|
84
|
-
end
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
82
|
+
if label && state.respond_to?(:mandatory?) && state.mandatory?(key)
|
83
|
+
label += '*'
|
84
|
+
end
|
85
|
+
if label
|
86
|
+
context.label(@attributes) { label }
|
87
|
+
end
|
88
|
+
end
|
89
89
|
end
|
90
90
|
end
|
data/lib/htmlgrid/list.rb
CHANGED
@@ -143,28 +143,28 @@ module HtmlGrid
|
|
143
143
|
end
|
144
144
|
link
|
145
145
|
end
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
146
|
+
def sort_model
|
147
|
+
block = self::class::SORT_DEFAULT
|
148
|
+
if block && (@session.event != :sort)
|
149
|
+
begin
|
150
|
+
if block == :self
|
151
|
+
@model = @model.sort
|
152
|
+
else
|
153
|
+
unless block.is_a?(Proc)
|
154
|
+
block = Proc.new { |item|
|
155
|
+
begin
|
156
|
+
item.send(self::class::SORT_DEFAULT)
|
157
|
+
rescue RuntimeError
|
158
|
+
item.to_s
|
159
|
+
end
|
160
|
+
}
|
161
|
+
end
|
162
|
+
@model = @model.sort_by(&block)
|
163
|
+
end
|
164
|
+
rescue StandardError => e
|
165
|
+
puts "could not sort: #{e.message}"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
169
|
end
|
170
170
|
end
|
data/lib/htmlgrid/version.rb
CHANGED
data/test/suite.rb
CHANGED
data/test/test_add_row.rb
CHANGED
@@ -9,67 +9,86 @@ require 'htmlgrid/composite'
|
|
9
9
|
require 'htmlgrid/inputtext'
|
10
10
|
require 'htmlgrid/form'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
LABELS = true
|
18
|
-
SYMBOL_MAP = {
|
19
|
-
:bar => HtmlGrid::InputText,
|
20
|
-
}
|
21
|
-
attr_reader :model, :session
|
22
|
-
public :resolve_offset, :labels?
|
23
|
-
def init
|
24
|
-
@barcount=0
|
25
|
-
super
|
26
|
-
end
|
27
|
-
def foo(model)
|
28
|
-
1.upto(2).each { |idx|
|
29
|
-
@grid.add(baz(model), 0, idx, 0)
|
12
|
+
module RowTest
|
13
|
+
class StubComposite < HtmlGrid::Composite
|
14
|
+
attr_writer :container
|
15
|
+
COMPONENTS = {
|
16
|
+
[0, 0, 1] => :foo,
|
30
17
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
18
|
+
LABELS = true
|
19
|
+
SYMBOL_MAP = {
|
20
|
+
:bar => HtmlGrid::InputText,
|
21
|
+
}
|
22
|
+
attr_reader :model, :session
|
23
|
+
public :resolve_offset, :labels?
|
24
|
+
|
25
|
+
def init
|
26
|
+
@barcount=0
|
27
|
+
super
|
28
|
+
end
|
29
|
+
|
30
|
+
def foo(session, model)
|
31
|
+
1.upto(2).each { |idx|
|
32
|
+
@grid.add(baz(model), 0, idx, 0)
|
33
|
+
}
|
34
|
+
'Foo'
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def baz(model)
|
40
|
+
@barcount += 1
|
41
|
+
"Baz#{@barcount}"
|
42
|
+
end
|
50
43
|
end
|
51
|
-
|
52
|
-
class
|
53
|
-
|
54
|
-
|
44
|
+
|
45
|
+
class StubCompositeModel; end
|
46
|
+
|
47
|
+
class StubComposite2Model; end
|
48
|
+
|
49
|
+
class StubCompositeLookandfeel
|
50
|
+
def attributes(key)
|
51
|
+
{}
|
52
|
+
end
|
53
|
+
|
54
|
+
def lookup(key)
|
55
|
+
end
|
56
|
+
|
57
|
+
def base_url
|
58
|
+
'http://www.oddb.org/de/gcc'
|
59
|
+
end
|
55
60
|
end
|
56
|
-
|
61
|
+
|
62
|
+
class StubCompositeSession
|
63
|
+
def lookandfeel
|
64
|
+
StubCompositeLookandfeel.new
|
65
|
+
end
|
66
|
+
|
67
|
+
def error(key)
|
68
|
+
end
|
57
69
|
end
|
58
|
-
end
|
59
|
-
class StubCompositeForm < HtmlGrid::Form
|
60
|
-
COMPONENTS = {
|
61
|
-
[0,0] => StubComposite
|
62
|
-
}
|
63
|
-
EVENT = :foo
|
64
|
-
end
|
65
70
|
|
66
|
-
class
|
67
|
-
|
68
|
-
|
69
|
-
|
71
|
+
class StubCompositeForm < HtmlGrid::Form
|
72
|
+
COMPONENTS = {
|
73
|
+
[0, 0] => StubComposite
|
74
|
+
}
|
75
|
+
EVENT = :foo
|
70
76
|
end
|
71
|
-
|
72
|
-
|
73
|
-
|
77
|
+
|
78
|
+
class TestComposite < Minitest::Test
|
79
|
+
def setup
|
80
|
+
@composite = StubComposite.new(
|
81
|
+
[StubComposite2Model.new, StubCompositeModel.new],
|
82
|
+
StubCompositeSession.new
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_to_html
|
87
|
+
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), @composite.to_html(CGI.new))
|
88
|
+
<TABLE cellspacing="0">
|
89
|
+
<TR><TD>Foo</TD></TR><TR><TD>Baz1</TD></TR><TR><TD>Baz2</TD></TR>
|
90
|
+
</TABLE>
|
91
|
+
EXP
|
92
|
+
end
|
74
93
|
end
|
75
94
|
end
|
data/test/test_component.rb
CHANGED
@@ -30,9 +30,9 @@ require 'minitest/autorun'
|
|
30
30
|
require 'htmlgrid/component'
|
31
31
|
|
32
32
|
module HtmlGrid
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
class Component
|
34
|
+
attr_reader :session, :container
|
35
|
+
end
|
36
36
|
end
|
37
37
|
|
38
38
|
class TestComponent < Minitest::Test
|
data/test/test_composite.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
4
|
+
# Copyright (C) 2003 ywesee - intellectual capital connected
|
5
5
|
# Andreas Schrafl, Benjamin Fay, Hannes Wyss, Markus Huggler
|
6
6
|
#
|
7
7
|
# This library is free software; you can redistribute it and/or
|
@@ -18,10 +18,10 @@
|
|
18
18
|
# License along with this library; if not, write to the Free Software
|
19
19
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
20
|
#
|
21
|
-
#
|
22
|
-
#
|
21
|
+
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
|
+
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
23
|
#
|
24
|
-
# TestComposite -- htmlgrid -- 24.10.2002 -- hwyss@ywesee.com
|
24
|
+
# TestComposite -- htmlgrid -- 24.10.2002 -- hwyss@ywesee.com
|
25
25
|
|
26
26
|
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
27
27
|
$: << File.dirname(__FILE__)
|
@@ -32,183 +32,215 @@ require 'htmlgrid/composite'
|
|
32
32
|
require 'htmlgrid/inputtext'
|
33
33
|
require 'htmlgrid/form'
|
34
34
|
require 'htmlgrid/button'
|
35
|
+
require 'test_helper'
|
35
36
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
37
|
+
module CompositeTest
|
38
|
+
class StubComposite < HtmlGrid::Composite
|
39
|
+
attr_writer :container
|
40
|
+
COMPONENTS = {
|
41
|
+
[0, 0, 0] => :baz,
|
42
|
+
[0, 0, 1] => :foo,
|
43
|
+
[0, 0, 2] => :baz,
|
44
|
+
[0, 1, 0] => :baz,
|
45
|
+
[0, 1, 1] => :baz,
|
46
|
+
}
|
47
|
+
LABELS = true
|
48
|
+
SYMBOL_MAP = {
|
49
|
+
:bar => HtmlGrid::InputText,
|
50
|
+
}
|
51
|
+
attr_reader :model, :session
|
52
|
+
public :resolve_offset, :labels?
|
53
|
+
def init
|
54
|
+
@barcount=0
|
55
|
+
super
|
56
|
+
end
|
57
|
+
def foo(model, lookandfeel)
|
58
|
+
"Foo"
|
59
|
+
end
|
60
|
+
def baz(model, lookandfeel)
|
61
|
+
@barcount += 1
|
62
|
+
"Baz#{@barcount}"
|
63
|
+
end
|
64
|
+
def back
|
65
|
+
super
|
66
|
+
end
|
64
67
|
end
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
70
|
-
end
|
71
|
-
class StubComposite2 < HtmlGrid::Composite
|
72
|
-
COMPONENTS = {
|
73
|
-
[0,0] => StubCompositeComponent,
|
74
|
-
}
|
75
|
-
end
|
76
|
-
class StubComposite3 < StubComposite2
|
77
|
-
COMPONENT_CSS_MAP = {[0,0,4,4]=>'standard'}
|
78
|
-
end
|
79
|
-
class StubComposite4 < StubComposite3
|
80
|
-
CSS_MAP = {[0,0]=>'dradnats'}
|
81
|
-
COMPONENT_CSS_MAP = {[0,0,4,4]=>'standard'}
|
82
|
-
end
|
83
|
-
class StubCompositeNoLabel < HtmlGrid::Composite
|
84
|
-
LABELS = false
|
85
|
-
COMPONENTS = {}
|
86
|
-
public :labels?
|
87
|
-
end
|
88
|
-
class StubCompositeModel
|
89
|
-
end
|
90
|
-
class StubCompositeLookandfeel
|
91
|
-
def event_url(one)
|
92
|
-
return 'event_url'
|
68
|
+
class StubCompositeComponent < HtmlGrid::Component
|
69
|
+
def to_html(context)
|
70
|
+
context.a(@attributes) { 'brafoo' }
|
71
|
+
end
|
93
72
|
end
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
end
|
99
|
-
def base_url
|
100
|
-
'http://www.oddb.org/de/gcc'
|
101
|
-
end
|
102
|
-
end
|
103
|
-
class StubCompositeSession
|
104
|
-
def lookandfeel
|
105
|
-
StubCompositeLookandfeel.new
|
106
|
-
end
|
107
|
-
def error(key)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
class StubCompositeForm < HtmlGrid::Form
|
111
|
-
COMPONENTS = {
|
112
|
-
[0,0] => StubComposite
|
113
|
-
}
|
114
|
-
EVENT = :foo
|
115
|
-
end
|
116
|
-
class StubCompositeColspan1 < HtmlGrid::Composite
|
117
|
-
COMPONENTS = {}
|
118
|
-
end
|
119
|
-
class StubCompositeColspan2 < HtmlGrid::Composite
|
120
|
-
COMPONENTS = {
|
121
|
-
[0,0] => :foo,
|
122
|
-
}
|
123
|
-
end
|
124
|
-
class StubCompositeColspan3 < HtmlGrid::Composite
|
125
|
-
COMPONENTS = {
|
126
|
-
[0,0] => :foo,
|
127
|
-
[1,0] => :bar,
|
128
|
-
}
|
129
|
-
end
|
130
|
-
class StubCompositeColspan4 < HtmlGrid::Composite
|
131
|
-
COMPONENTS = {
|
132
|
-
[0,0] => :foo,
|
133
|
-
[2,0] => :bar,
|
134
|
-
}
|
135
|
-
end
|
136
|
-
|
137
|
-
class TestComposite < Minitest::Test
|
138
|
-
def setup
|
139
|
-
@composite = StubComposite.new(StubCompositeModel.new, StubCompositeSession.new)
|
140
|
-
end
|
141
|
-
def test_create_method
|
142
|
-
foo = nil
|
143
|
-
foo = @composite.create(:foo, @composite.model)
|
144
|
-
assert_equal("Foo", foo)
|
145
|
-
end
|
146
|
-
def test_create_symbol
|
147
|
-
bar = nil
|
148
|
-
bar = @composite.create(:bar, @composite.model)
|
149
|
-
assert_equal(HtmlGrid::InputText, bar.class)
|
150
|
-
end
|
151
|
-
def test_full_colspan1
|
152
|
-
composite = StubCompositeColspan1.new(StubCompositeModel.new, StubCompositeSession.new)
|
153
|
-
composite.full_colspan
|
154
|
-
assert_equal(nil, composite.full_colspan)
|
155
|
-
end
|
156
|
-
def test_full_colspan2
|
157
|
-
composite = StubCompositeColspan2.new(StubCompositeModel.new, StubCompositeSession.new)
|
158
|
-
composite.full_colspan
|
159
|
-
assert_equal(nil, composite.full_colspan)
|
160
|
-
end
|
161
|
-
def test_full_colspan3
|
162
|
-
composite = StubCompositeColspan3.new(StubCompositeModel.new, StubCompositeSession.new)
|
163
|
-
composite.full_colspan
|
164
|
-
assert_equal(2, composite.full_colspan)
|
165
|
-
end
|
166
|
-
def test_full_colspan4
|
167
|
-
composite = StubCompositeColspan4.new(StubCompositeModel.new, StubCompositeSession.new)
|
168
|
-
composite.full_colspan
|
169
|
-
assert_equal(3, composite.full_colspan)
|
170
|
-
end
|
171
|
-
def test_labels1
|
172
|
-
composite = StubCompositeNoLabel.new(StubCompositeModel.new, StubCompositeSession.new)
|
173
|
-
assert_equal(false, composite.labels?)
|
174
|
-
end
|
175
|
-
def test_labels2
|
176
|
-
assert_equal(true, @composite.labels?)
|
177
|
-
end
|
178
|
-
def test_to_html
|
179
|
-
expected = '<TABLE cellspacing="0"><TR><TD>Baz1FooBaz2</TD></TR><TR><TD>Baz3Baz4</TD></TR></TABLE>'
|
180
|
-
assert_equal(expected, @composite.to_html(CGI.new))
|
73
|
+
class StubComposite2 < HtmlGrid::Composite
|
74
|
+
COMPONENTS = {
|
75
|
+
[0, 0] => StubCompositeComponent,
|
76
|
+
}
|
181
77
|
end
|
182
|
-
|
183
|
-
|
184
|
-
assert_equal(matrix, @composite.resolve_offset(matrix))
|
185
|
-
offset = [5,6]
|
186
|
-
expected = [6,8,3,4]
|
187
|
-
assert_equal(expected, @composite.resolve_offset(matrix, offset))
|
188
|
-
end
|
189
|
-
def test_event
|
190
|
-
@composite.event()
|
191
|
-
form = StubCompositeForm.new(@composite.model, @composite.session)
|
192
|
-
@composite.container = form
|
193
|
-
assert_equal(:foo, @composite.event())
|
194
|
-
end
|
195
|
-
def test_component_css_map
|
196
|
-
composite = StubComposite2.new(StubCompositeModel.new, StubCompositeSession.new)
|
197
|
-
expected = '<TABLE cellspacing="0"><TR><TD><A>brafoo</A></TD></TR></TABLE>'
|
198
|
-
assert_equal(expected, composite.to_html(CGI.new))
|
199
|
-
composite = StubComposite3.new(StubCompositeModel.new, StubCompositeSession.new)
|
200
|
-
expected = '<TABLE cellspacing="0"><TR><TD><A class="standard">brafoo</A></TD></TR></TABLE>'
|
201
|
-
assert_equal(expected, composite.to_html(CGI.new))
|
202
|
-
composite = StubComposite4.new(StubCompositeModel.new, StubCompositeSession.new)
|
78
|
+
class StubComposite3 < StubComposite2
|
79
|
+
COMPONENT_CSS_MAP = {[0, 0, 4, 4] => 'standard'}
|
203
80
|
end
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
81
|
+
class StubComposite4 < StubComposite3
|
82
|
+
CSS_MAP = {[0, 0] => 'dradnats'}
|
83
|
+
COMPONENT_CSS_MAP = {[0, 0, 4, 4] => 'standard'}
|
84
|
+
end
|
85
|
+
class StubCompositeNoLabel < HtmlGrid::Composite
|
86
|
+
LABELS = false
|
87
|
+
COMPONENTS = {}
|
88
|
+
public :labels?
|
89
|
+
end
|
90
|
+
class StubCompositeModel
|
91
|
+
end
|
92
|
+
class StubCompositeLookandfeel
|
93
|
+
def event_url(one)
|
94
|
+
return 'event_url'
|
95
|
+
end
|
96
|
+
def attributes(key)
|
97
|
+
{}
|
98
|
+
end
|
99
|
+
def lookup(key)
|
100
|
+
end
|
101
|
+
def base_url
|
102
|
+
'http://www.oddb.org/de/gcc'
|
103
|
+
end
|
104
|
+
end
|
105
|
+
class StubCompositeSession
|
106
|
+
def lookandfeel
|
107
|
+
StubCompositeLookandfeel.new
|
108
|
+
end
|
109
|
+
def error(key)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
class StubCompositeForm < HtmlGrid::Form
|
113
|
+
COMPONENTS = {
|
114
|
+
[0, 0] => StubComposite
|
115
|
+
}
|
116
|
+
EVENT = :foo
|
117
|
+
end
|
118
|
+
class StubCompositeColspan1 < HtmlGrid::Composite
|
119
|
+
COMPONENTS = {}
|
120
|
+
end
|
121
|
+
class StubCompositeColspan2 < HtmlGrid::Composite
|
122
|
+
COMPONENTS = {
|
123
|
+
[0, 0] => :foo,
|
124
|
+
}
|
125
|
+
end
|
126
|
+
class StubCompositeColspan3 < HtmlGrid::Composite
|
127
|
+
COMPONENTS = {
|
128
|
+
[0, 0] => :foo,
|
129
|
+
[1, 0] => :bar,
|
130
|
+
}
|
131
|
+
end
|
132
|
+
class StubCompositeColspan4 < HtmlGrid::Composite
|
133
|
+
COMPONENTS = {
|
134
|
+
[0, 0] => :foo,
|
135
|
+
[2, 0] => :bar,
|
136
|
+
}
|
137
|
+
end
|
138
|
+
|
139
|
+
class TestComposite < Minitest::Test
|
140
|
+
def setup
|
141
|
+
@composite = StubComposite.new(
|
142
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
143
|
+
end
|
144
|
+
def test_create_method
|
145
|
+
foo = nil
|
146
|
+
foo = @composite.create(:foo, @composite.model)
|
147
|
+
assert_equal("Foo", foo)
|
148
|
+
end
|
149
|
+
def test_create_symbol
|
150
|
+
bar = nil
|
151
|
+
bar = @composite.create(:bar, @composite.model)
|
152
|
+
assert_equal(HtmlGrid::InputText, bar.class)
|
153
|
+
end
|
154
|
+
def test_full_colspan1
|
155
|
+
composite = StubCompositeColspan1.new(
|
156
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
157
|
+
composite.full_colspan
|
158
|
+
assert_equal(nil, composite.full_colspan)
|
159
|
+
end
|
160
|
+
def test_full_colspan2
|
161
|
+
composite = StubCompositeColspan2.new(
|
162
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
163
|
+
composite.full_colspan
|
164
|
+
assert_equal(nil, composite.full_colspan)
|
165
|
+
end
|
166
|
+
def test_full_colspan3
|
167
|
+
composite = StubCompositeColspan3.new(
|
168
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
169
|
+
composite.full_colspan
|
170
|
+
assert_equal(2, composite.full_colspan)
|
171
|
+
end
|
172
|
+
def test_full_colspan4
|
173
|
+
composite = StubCompositeColspan4.new(
|
174
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
175
|
+
composite.full_colspan
|
176
|
+
assert_equal(3, composite.full_colspan)
|
177
|
+
end
|
178
|
+
def test_labels1
|
179
|
+
composite = StubCompositeNoLabel.new(
|
180
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
181
|
+
assert_equal(false, composite.labels?)
|
182
|
+
end
|
183
|
+
def test_labels2
|
184
|
+
assert_equal(true, @composite.labels?)
|
185
|
+
end
|
186
|
+
def test_to_html
|
187
|
+
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), @composite.to_html(CGI.new))
|
188
|
+
<TABLE cellspacing="0">
|
189
|
+
<TR><TD>Baz1FooBaz2</TD></TR><TR><TD>Baz3Baz4</TD></TR>
|
190
|
+
</TABLE>
|
191
|
+
EXP
|
192
|
+
end
|
193
|
+
def test_resolve_offset
|
194
|
+
matrix = [1,2,3,4]
|
195
|
+
assert_equal(matrix, @composite.resolve_offset(matrix))
|
196
|
+
offset = [5,6]
|
197
|
+
expected = [6,8,3,4]
|
198
|
+
assert_equal(expected, @composite.resolve_offset(matrix, offset))
|
199
|
+
end
|
200
|
+
def test_event
|
201
|
+
@composite.event
|
202
|
+
@composite.container = StubCompositeForm.new(
|
203
|
+
@composite.model, @composite.session)
|
204
|
+
assert_equal(:foo, @composite.event)
|
205
|
+
end
|
206
|
+
def test_component_css_map
|
207
|
+
table = StubComposite2.new(
|
208
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
209
|
+
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), table.to_html(CGI.new))
|
210
|
+
<TABLE cellspacing="0">
|
211
|
+
<TR><TD><A>brafoo</A></TD></TR>
|
212
|
+
</TABLE>
|
213
|
+
EXP
|
214
|
+
table = StubComposite3.new(
|
215
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
216
|
+
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), table.to_html(CGI.new))
|
217
|
+
<TABLE cellspacing="0">
|
218
|
+
<TR><TD><A class="standard">brafoo</A></TD></TR>
|
219
|
+
</TABLE>
|
220
|
+
EXP
|
221
|
+
table = StubComposite4.new(
|
222
|
+
StubCompositeModel.new, StubCompositeSession.new)
|
223
|
+
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), table.to_html(CGI.new))
|
224
|
+
<TABLE cellspacing="0">
|
225
|
+
<TR><TD><A class="standard">brafoo</A></TD></TR>
|
226
|
+
</TABLE>
|
227
|
+
EXP
|
228
|
+
end
|
229
|
+
def test_to_back
|
230
|
+
if RUBY_VERSION.split(".").first.eql?('1')
|
231
|
+
expected = <<-EXP.gsub(/\n|^\s{10}/, '')
|
232
|
+
<INPUT type="button" name="back"
|
233
|
+
onClick="document.location.href='event_url';">
|
234
|
+
EXP
|
235
|
+
else
|
236
|
+
# It looks like Ruby 2.x escapes the ' which is not strictly necessary
|
237
|
+
expected = <<-EXP.gsub(/\n|^\s{10}/, '')
|
238
|
+
<INPUT type="button" name="back"
|
239
|
+
onClick="document.location.href='event_url';">
|
240
|
+
EXP
|
241
|
+
end
|
242
|
+
html = @composite.back().to_html(CGI.new)
|
243
|
+
assert_equal(expected, html)
|
244
|
+
end
|
213
245
|
end
|
214
246
|
end
|