htmlgrid 1.1.7 → 1.2.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/lib/htmlgrid/booleanvalue.rb +14 -14
- data/lib/htmlgrid/button.rb +9 -9
- data/lib/htmlgrid/centeredcomposite.rb +21 -20
- data/lib/htmlgrid/component.rb +214 -197
- data/lib/htmlgrid/composite.rb +332 -301
- data/lib/htmlgrid/datevalue.rb +12 -12
- data/lib/htmlgrid/div.rb +9 -9
- data/lib/htmlgrid/divcomposite.rb +44 -43
- data/lib/htmlgrid/divform.rb +8 -8
- data/lib/htmlgrid/divlist.rb +17 -19
- data/lib/htmlgrid/divtemplate.rb +6 -6
- data/lib/htmlgrid/dojotoolkit.rb +54 -48
- data/lib/htmlgrid/errormessage.rb +47 -43
- data/lib/htmlgrid/form.rb +70 -62
- data/lib/htmlgrid/formlist.rb +14 -14
- data/lib/htmlgrid/grid.rb +111 -67
- data/lib/htmlgrid/image.rb +17 -16
- data/lib/htmlgrid/infomessage.rb +15 -14
- data/lib/htmlgrid/input.rb +34 -32
- data/lib/htmlgrid/inputcheckbox.rb +13 -13
- data/lib/htmlgrid/inputcurrency.rb +9 -9
- data/lib/htmlgrid/inputdate.rb +11 -11
- data/lib/htmlgrid/inputfile.rb +13 -12
- data/lib/htmlgrid/inputradio.rb +9 -9
- data/lib/htmlgrid/inputtext.rb +10 -10
- data/lib/htmlgrid/javascript.rb +17 -16
- data/lib/htmlgrid/label.rb +53 -49
- data/lib/htmlgrid/labeltext.rb +8 -8
- data/lib/htmlgrid/link.rb +31 -27
- data/lib/htmlgrid/list.rb +121 -110
- data/lib/htmlgrid/namedcomponent.rb +28 -25
- data/lib/htmlgrid/pass.rb +11 -11
- data/lib/htmlgrid/passthru.rb +20 -17
- data/lib/htmlgrid/popuplink.rb +41 -39
- data/lib/htmlgrid/reset.rb +8 -8
- data/lib/htmlgrid/richtext.rb +22 -20
- data/lib/htmlgrid/select.rb +28 -26
- data/lib/htmlgrid/span.rb +9 -9
- data/lib/htmlgrid/spancomposite.rb +18 -18
- data/lib/htmlgrid/spanlist.rb +9 -9
- data/lib/htmlgrid/staticinput.rb +14 -13
- data/lib/htmlgrid/submit.rb +9 -9
- data/lib/htmlgrid/template.rb +121 -105
- data/lib/htmlgrid/text.rb +9 -9
- data/lib/htmlgrid/textarea.rb +19 -17
- data/lib/htmlgrid/ulcomposite.rb +22 -22
- data/lib/htmlgrid/ullist.rb +9 -9
- data/lib/htmlgrid/urllink.rb +38 -36
- data/lib/htmlgrid/value.rb +9 -9
- data/lib/htmlgrid/version.rb +2 -2
- data/test/stub/cgi.rb +10 -7
- data/test/suite.rb +3 -3
- data/test/test_add_row.rb +12 -13
- data/test/test_component.rb +141 -91
- data/test/test_composite.rb +85 -46
- data/test/test_datevalue.rb +28 -24
- data/test/test_divlist.rb +126 -0
- data/test/test_dojotoolkit.rb +41 -26
- data/test/test_form.rb +89 -73
- data/test/test_formlist.rb +77 -65
- data/test/test_grid.rb +256 -208
- data/test/test_input.rb +37 -31
- data/test/test_interaction_list.rb +106 -70
- data/test/test_label.rb +91 -77
- data/test/test_list.rb +110 -95
- data/test/test_select.rb +35 -30
- data/test/test_template.rb +66 -55
- data/test/test_text.rb +36 -31
- metadata +17 -4
- data/TooltipDialog.txt +0 -73
- data/interaction_no_inline.txt +0 -1216
data/test/test_label.rb
CHANGED
@@ -21,91 +21,105 @@
|
|
21
21
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
22
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
23
|
#
|
24
|
-
# TestLabel -- htmlgrid -- 26.11.2002 -- hwyss@ywesee.com
|
24
|
+
# TestLabel -- htmlgrid -- 26.11.2002 -- hwyss@ywesee.com
|
25
25
|
|
26
26
|
$: << File.dirname(__FILE__)
|
27
27
|
$: << File.expand_path("../lib", File.dirname(__FILE__))
|
28
28
|
|
29
|
-
require
|
30
|
-
require
|
31
|
-
require
|
32
|
-
require
|
29
|
+
require "minitest/autorun"
|
30
|
+
require "stub/cgi"
|
31
|
+
require "htmlgrid/label"
|
32
|
+
require "htmlgrid/composite"
|
33
33
|
|
34
34
|
class TestLabel < Minitest::Test
|
35
|
-
|
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
|
-
|
64
|
-
|
65
|
-
|
35
|
+
class StubLabelState
|
36
|
+
attr_reader :errors
|
37
|
+
def initialize(errors = {})
|
38
|
+
@errors = errors
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class StubLabelModel
|
43
|
+
end
|
44
|
+
|
45
|
+
class StubLabelSession
|
46
|
+
attr_writer :state
|
47
|
+
def state
|
48
|
+
@state ||= StubLabelState.new
|
49
|
+
end
|
50
|
+
|
51
|
+
def lookup(key)
|
52
|
+
case key
|
53
|
+
when :componentname
|
54
|
+
"Label"
|
55
|
+
when :named_component
|
56
|
+
"Named Label"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def lookandfeel
|
61
|
+
self
|
62
|
+
end
|
63
|
+
|
64
|
+
def error(key)
|
65
|
+
state.errors[key]
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class StubLabelComponent < HtmlGrid::Component
|
70
|
+
attr_accessor :mey
|
71
|
+
def initialize(model, session = nil, container = nil)
|
66
72
|
@mey = nil
|
67
73
|
super
|
68
74
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
75
|
+
|
76
|
+
def to_html(context)
|
77
|
+
"component"
|
78
|
+
end
|
79
|
+
|
80
|
+
def label?
|
81
|
+
true
|
82
|
+
end
|
83
|
+
|
84
|
+
def name
|
85
|
+
:componentname
|
86
|
+
end
|
87
|
+
|
88
|
+
def css_class
|
89
|
+
@mey
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
class StubLabelComposite < HtmlGrid::Composite
|
94
|
+
COMPONENTS = {
|
95
|
+
[0, 0] => StubLabelComponent,
|
96
|
+
[0, 1] => :named_component
|
97
|
+
}
|
98
|
+
LABELS = true
|
99
|
+
def named_component(model, session)
|
100
|
+
@named_component ||= StubLabelComponent.new(model, session, self)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def setup
|
105
|
+
@session = StubLabelSession.new
|
106
|
+
# @label = HtmlGrid::Label.new(component)
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_to_html1
|
110
|
+
composite = StubLabelComposite.new(StubLabelModel.new, @session)
|
111
|
+
expected = '<TABLE cellspacing="0"><TR>'
|
112
|
+
expected << '<TD><LABEL for="componentname">Label</LABEL></TD>'
|
113
|
+
expected << "<TD>component</TD></TR>"
|
114
|
+
expected << '<TR><TD><LABEL for="componentname">Named Label</LABEL></TD>'
|
115
|
+
expected << "<TD>component</TD></TR></TABLE>"
|
116
|
+
assert_equal(expected, composite.to_html(CGI.new))
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_to_html2
|
120
|
+
@session.state = StubLabelState.new({named_component: "ein Error"})
|
121
|
+
composite = StubLabelComposite.new(StubLabelModel.new, @session)
|
108
122
|
expected = '<TABLE cellspacing="0"><TR><TD><LABEL for="componentname">Label</LABEL></TD><TD>component</TD></TR><TR><TD><LABEL for="componentname" class="error">Named Label</LABEL></TD><TD>component</TD></TR></TABLE>'
|
109
|
-
|
110
|
-
|
123
|
+
assert_equal(expected, composite.to_html(CGI.new))
|
124
|
+
end
|
111
125
|
end
|
data/test/test_list.rb
CHANGED
@@ -21,118 +21,133 @@
|
|
21
21
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
22
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
23
|
#
|
24
|
-
# TestList -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
24
|
+
# TestList -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
25
25
|
|
26
26
|
$: << File.dirname(__FILE__)
|
27
27
|
$: << File.expand_path("../lib", File.dirname(__FILE__))
|
28
28
|
|
29
|
-
require
|
30
|
-
require
|
31
|
-
require
|
32
|
-
require
|
29
|
+
require "minitest/autorun"
|
30
|
+
require "htmlgrid/list"
|
31
|
+
require "stub/cgi"
|
32
|
+
require "test_helper"
|
33
33
|
|
34
34
|
module HtmlGrid
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
class List < Composite
|
36
|
+
attr_reader :grid
|
37
|
+
public :lookandfeel_key
|
38
|
+
end
|
39
39
|
end
|
40
|
+
|
40
41
|
class StubListViewColumnNames < HtmlGrid::List
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
LOOKANDFEEL_MAP = {
|
43
|
+
raffi: :waltert,
|
44
|
+
andy: :schrafl
|
45
|
+
}
|
46
|
+
COMPONENTS = {}
|
46
47
|
end
|
48
|
+
|
47
49
|
class StubList < HtmlGrid::List
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
50
|
+
attr_reader :model
|
51
|
+
COMPONENTS = {
|
52
|
+
[0, 0] => :jaguar,
|
53
|
+
[1, 0] => :panther
|
54
|
+
}
|
55
|
+
CSS_MAP = {
|
56
|
+
[0, 0] => "flecken",
|
57
|
+
[1, 0] => "schwarz"
|
58
|
+
}
|
59
|
+
SORT_HEADER = false
|
60
|
+
SORT_DEFAULT = :foo
|
59
61
|
end
|
62
|
+
|
60
63
|
class StubListLookandfeel
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
def lookup(key)
|
65
|
+
key
|
66
|
+
end
|
67
|
+
|
68
|
+
def attributes(key)
|
69
|
+
{}
|
70
|
+
end
|
67
71
|
end
|
72
|
+
|
68
73
|
class StubListSession
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
74
|
+
attr_accessor :event
|
75
|
+
def lookandfeel
|
76
|
+
StubListLookandfeel.new
|
77
|
+
end
|
73
78
|
end
|
79
|
+
|
74
80
|
class StubListModel
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
attr_reader :foo
|
82
|
+
def initialize(foo)
|
83
|
+
@foo = foo
|
84
|
+
end
|
85
|
+
|
86
|
+
def jaguar
|
87
|
+
"Jaguar"
|
88
|
+
end
|
89
|
+
|
90
|
+
def panther
|
91
|
+
"Panther"
|
92
|
+
end
|
93
|
+
end
|
86
94
|
|
87
95
|
class TestList < Minitest::Test
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
96
|
+
def setup
|
97
|
+
model = [
|
98
|
+
StubListModel.new(3),
|
99
|
+
StubListModel.new(2),
|
100
|
+
StubListModel.new(4),
|
101
|
+
StubListModel.new(1)
|
102
|
+
]
|
103
|
+
@list = StubList.new(model, StubListSession.new)
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_compose
|
107
|
+
@list.compose
|
108
|
+
assert_equal(5, @list.grid.height)
|
109
|
+
assert_equal(2, @list.grid.width)
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_default_sort
|
113
|
+
foos = @list.model.collect { |item| item.foo }
|
114
|
+
expected = [1, 2, 3, 4]
|
115
|
+
assert_equal(expected, foos)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_header
|
119
|
+
expected = '<TABLE cellspacing="0"><TR><TH title="th_jaguar_title">th_jaguar</TH><TH title="th_panther_title">th_panther</TH>'
|
120
|
+
assert_equal(0, @list.to_html(CGI.new).index(expected))
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_lookandfeel_key
|
124
|
+
list = StubListViewColumnNames.new([], StubListSession.new)
|
125
|
+
assert_equal(:waltert, list.lookandfeel_key(:raffi))
|
126
|
+
assert_equal(:hannes, list.lookandfeel_key(:hannes))
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_nil_robust
|
117
130
|
StubList.new(nil, StubListSession.new)
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
131
|
+
end
|
132
|
+
|
133
|
+
def test_suffix
|
134
|
+
@list.compose
|
135
|
+
expected = {
|
136
|
+
[0, 1] => "flecken",
|
137
|
+
[1, 1] => "schwarz",
|
138
|
+
[0, 2] => "flecken-bg",
|
139
|
+
[1, 2] => "schwarz-bg",
|
140
|
+
[0, 3] => "flecken",
|
141
|
+
[1, 3] => "schwarz",
|
142
|
+
[0, 4] => "flecken-bg",
|
143
|
+
[1, 4] => "schwarz-bg"
|
144
|
+
}
|
145
|
+
expected.each { |key, value|
|
146
|
+
assert_equal(value, @list.grid.field_attribute("class", *key))
|
147
|
+
}
|
148
|
+
end
|
149
|
+
|
150
|
+
def test_title
|
151
|
+
assert_equal("th_jaguar_title", @list.grid.field_attribute("title", 0, 0))
|
152
|
+
end
|
138
153
|
end
|
data/test/test_select.rb
CHANGED
@@ -21,50 +21,55 @@
|
|
21
21
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
22
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
23
|
#
|
24
|
-
# TestSelect -- htmlgrid -- 10.03.2003 -- hwyss@ywesee.com
|
24
|
+
# TestSelect -- htmlgrid -- 10.03.2003 -- hwyss@ywesee.com
|
25
25
|
|
26
26
|
$LOAD_PATH << File.expand_path("../lib", File.dirname(__FILE__))
|
27
27
|
$LOAD_PATH << File.dirname(__FILE__)
|
28
28
|
|
29
|
-
require
|
30
|
-
require
|
31
|
-
require
|
29
|
+
require "minitest/autorun"
|
30
|
+
require "htmlgrid/select"
|
31
|
+
require "stub/cgi"
|
32
32
|
|
33
33
|
class StubSelectLookandfeel
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
34
|
+
def attributes(key)
|
35
|
+
{}
|
36
|
+
end
|
37
|
+
|
38
|
+
def lookup(key)
|
39
|
+
{
|
40
|
+
"foofoo" => "Foo Nr. 1",
|
41
|
+
"foobar" => "Foo Nr. 2",
|
42
|
+
"barfoo" => "Bar Nr. 1",
|
43
|
+
"barbar" => "Bar Nr. 2",
|
44
|
+
"foovals" => "FooLabel"
|
45
|
+
}.fetch(key)
|
46
|
+
end
|
46
47
|
end
|
48
|
+
|
47
49
|
class StubSelectSession
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
def valid_values(key)
|
51
|
+
["foofoo", "foobar", "barfoo", "barbar"]
|
52
|
+
end
|
53
|
+
|
54
|
+
def lookandfeel
|
55
|
+
StubSelectLookandfeel.new
|
56
|
+
end
|
54
57
|
end
|
58
|
+
|
55
59
|
class StubSelectData
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
def foovals
|
61
|
+
"foobar"
|
62
|
+
end
|
59
63
|
end
|
60
64
|
|
61
65
|
class TestSelect < Minitest::Test
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
+
def setup
|
67
|
+
@component = HtmlGrid::Select.new(:foovals, StubSelectData.new,
|
68
|
+
StubSelectSession.new)
|
69
|
+
end
|
70
|
+
|
66
71
|
def test_to_html
|
67
|
-
assert_equal(<<-SEL.gsub(/\n|^\s*/,
|
72
|
+
assert_equal(<<-SEL.gsub(/\n|^\s*/, ""), @component.to_html(CGI.new).to_s)
|
68
73
|
<SELECT name="foovals">
|
69
74
|
<OPTION value="foofoo">Foo Nr. 1</OPTION>
|
70
75
|
<OPTION value="foobar" selected>Foo Nr. 2</OPTION>
|