htmlgrid 1.1.3 → 1.1.8
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 +5 -5
- data/TooltipDialog.txt +73 -0
- data/interaction_no_inline.txt +1216 -0
- data/lib/htmlgrid/component.rb +8 -6
- data/lib/htmlgrid/dojotoolkit.rb +5 -5
- data/lib/htmlgrid/grid.rb +1 -1
- data/lib/htmlgrid/template.rb +20 -8
- data/lib/htmlgrid/version.rb +1 -1
- data/test/test_component.rb +36 -2
- data/test/test_composite.rb +3 -5
- data/test/test_dojotoolkit.rb +133 -0
- data/test/test_grid.rb +14 -14
- data/test/test_interaction_list.rb +7 -5
- data/test/test_template.rb +24 -1
- metadata +10 -10
- data/History.txt +0 -72
data/lib/htmlgrid/component.rb
CHANGED
@@ -22,8 +22,8 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# HtmlGrid::Component -- htmlgrid -- 23.12.2012 -- mhatakeyama@ywesee.com
|
26
|
-
# HtmlGrid::Component -- htmlgrid -- 23.10.2002 -- hwyss@ywesee.com
|
25
|
+
# HtmlGrid::Component -- htmlgrid -- 23.12.2012 -- mhatakeyama@ywesee.com
|
26
|
+
# HtmlGrid::Component -- htmlgrid -- 23.10.2002 -- hwyss@ywesee.com
|
27
27
|
#++
|
28
28
|
|
29
29
|
module HtmlGrid
|
@@ -72,7 +72,7 @@ module HtmlGrid
|
|
72
72
|
83 => "Sigma", 115 => "sigma",
|
73
73
|
84 => "Tau", 116 => "tau",
|
74
74
|
85 => "Upsilon", 117 => "upsilon",
|
75
|
-
86 => "sigmaf",
|
75
|
+
86 => "sigmaf",
|
76
76
|
87 => "Omega", 119 => "omega",
|
77
77
|
88 => "Xi", 120 => "xi",
|
78
78
|
89 => "Psi", 121 => "psi",
|
@@ -163,7 +163,7 @@ module HtmlGrid
|
|
163
163
|
end
|
164
164
|
# escape '&', '<' and '>' characters in txt
|
165
165
|
def escape(txt)
|
166
|
-
@@html_entities.inject(txt.to_s.dup) { |str, map|
|
166
|
+
@@html_entities.inject(txt.to_s.dup) { |str, map|
|
167
167
|
char, entity = map
|
168
168
|
str.gsub!(char, '&' << entity << ';')
|
169
169
|
str
|
@@ -214,7 +214,7 @@ module HtmlGrid
|
|
214
214
|
@attributes.store('tabIndex', tab.to_s)
|
215
215
|
end
|
216
216
|
def to_html(context)
|
217
|
-
_to_html(context, @value).to_s.
|
217
|
+
_to_html(context, @value).to_s.encode('utf-8')
|
218
218
|
end
|
219
219
|
@@nl2br_ptrn = /(\r\n)|(\n)|(\r)/
|
220
220
|
def _to_html(context, value=@value)
|
@@ -223,7 +223,9 @@ module HtmlGrid
|
|
223
223
|
elsif(value.respond_to?(:to_html))
|
224
224
|
value.to_html(context).to_s.force_encoding('utf-8')
|
225
225
|
else
|
226
|
-
|
226
|
+
if value && value.is_a?(String)
|
227
|
+
value =CGI.unescape(value.gsub('+', CGI.escape('+')))
|
228
|
+
end
|
227
229
|
end
|
228
230
|
end
|
229
231
|
private
|
data/lib/htmlgrid/dojotoolkit.rb
CHANGED
@@ -41,21 +41,22 @@ module HtmlGrid
|
|
41
41
|
# NOTE:
|
42
42
|
# DOJO >= 1.8 has support for type name separated by '/'
|
43
43
|
# but, <= 1.7 must be separated with '.'
|
44
|
-
'data-dojo-type' => 'dijit
|
45
|
-
'data-dojo-props' => "connectId
|
44
|
+
'data-dojo-type' => 'dijit/TooltipDialog',
|
45
|
+
'data-dojo-props' => "connectId:#{css_id}",
|
46
46
|
'id' => "#{css_id}_widget",
|
47
47
|
'style' => 'display: none',
|
48
48
|
}
|
49
|
-
unless match = @@msie_ptrn.match(@session.user_agent) \
|
49
|
+
unless (match = @@msie_ptrn.match(@session.user_agent)) \
|
50
50
|
&& match[1].to_i < 7
|
51
51
|
attrs.update({
|
52
52
|
'toggle' => 'fade',
|
53
53
|
'toggleDuration' => '500',
|
54
54
|
})
|
55
55
|
end
|
56
|
+
@dojo_tooltip ||= nil
|
56
57
|
if @dojo_tooltip.is_a?(String)
|
57
58
|
if @dojo_tooltip !~ /^http/ # e.g. javascript
|
58
|
-
attrs.store('href', "
|
59
|
+
attrs.store('href', "#@dojo_tooltip")
|
59
60
|
else
|
60
61
|
attrs.store('href', @dojo_tooltip)
|
61
62
|
end
|
@@ -101,7 +102,6 @@ module HtmlGrid
|
|
101
102
|
"preventBackButtonFix: #{!self.class::DOJO_BACK_BUTTON}",
|
102
103
|
"bindEncoding: '#{encoding}'",
|
103
104
|
"searchIds: []",
|
104
|
-
"async: true",
|
105
105
|
"urchin: ''",
|
106
106
|
"has: {
|
107
107
|
'dojo-firebug': #{self.class::DOJO_DEBUG},
|
data/lib/htmlgrid/grid.rb
CHANGED
@@ -86,7 +86,7 @@ module HtmlGrid
|
|
86
86
|
html = ''
|
87
87
|
@components.each { |component|
|
88
88
|
if component.respond_to? :to_html
|
89
|
-
html << component.to_html(cgi).to_s.force_encoding('utf-8')
|
89
|
+
html << component.to_html(cgi).to_s.dup.force_encoding('utf-8')
|
90
90
|
else
|
91
91
|
html << component.to_s
|
92
92
|
end
|
data/lib/htmlgrid/template.rb
CHANGED
@@ -22,9 +22,10 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# Template -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
25
|
+
# Template -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
26
26
|
|
27
27
|
require 'htmlgrid/composite'
|
28
|
+
require 'uri'
|
28
29
|
|
29
30
|
module HtmlGrid
|
30
31
|
module TemplateMethods
|
@@ -35,17 +36,28 @@ module HtmlGrid
|
|
35
36
|
LEGACY_INTERFACE = true
|
36
37
|
CSS_FILES = []
|
37
38
|
JAVASCRIPTS = []
|
39
|
+
@@local_doc_dir = File.join(Dir.pwd, 'doc')
|
40
|
+
def TemplateMethods.get_inline(ressource)
|
41
|
+
local_file = File.join(@@local_doc_dir, URI(ressource).path)
|
42
|
+
File.exist?(local_file) ? File.read(local_file) : nil
|
43
|
+
end
|
38
44
|
def css_link(context, path=@lookandfeel.resource(:css))
|
39
45
|
properties = {
|
40
46
|
"rel" => "stylesheet",
|
41
47
|
"type" => "text/css",
|
42
|
-
"
|
48
|
+
"async" => "true",
|
49
|
+
'href' => path,
|
43
50
|
}
|
44
|
-
|
51
|
+
if (content = TemplateMethods.get_inline(path))
|
52
|
+
properties.delete('href')
|
53
|
+
context.style(properties) { content }
|
54
|
+
else
|
55
|
+
context.link(properties)
|
56
|
+
end
|
45
57
|
end
|
46
58
|
def css_links(context, path=@lookandfeel.resource(:css))
|
47
|
-
links = self.class.const_get(:CSS_FILES).collect { |key|
|
48
|
-
css_link(context, @lookandfeel.resource(key))
|
59
|
+
links = self.class.const_get(:CSS_FILES).collect { |key|
|
60
|
+
css_link(context, @lookandfeel.resource(key))
|
49
61
|
}
|
50
62
|
links.push(css_link(context, path)) if(path)
|
51
63
|
links.join
|
@@ -71,8 +83,8 @@ module HtmlGrid
|
|
71
83
|
context.head {
|
72
84
|
if(block_given?)
|
73
85
|
block.call
|
74
|
-
|
75
|
-
|
86
|
+
end
|
87
|
+
context.head << title(context) <<
|
76
88
|
meta_tags(context) <<
|
77
89
|
other_html_headers(context) <<
|
78
90
|
css_links(context) <<
|
@@ -85,7 +97,7 @@ module HtmlGrid
|
|
85
97
|
"language" => "JavaScript",
|
86
98
|
"type" => "text/javascript",
|
87
99
|
"src" => @lookandfeel.resource_global(:javascript, "#{key}.js"),
|
88
|
-
}
|
100
|
+
}
|
89
101
|
context.script(properties)
|
90
102
|
}
|
91
103
|
jscripts.join
|
data/lib/htmlgrid/version.rb
CHANGED
data/test/test_component.rb
CHANGED
@@ -21,13 +21,15 @@
|
|
21
21
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
22
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
23
|
#
|
24
|
-
# TestComponent -- htmlgrid -- 26.11.2002 -- hwyss@ywesee.com
|
24
|
+
# TestComponent -- htmlgrid -- 26.11.2002 -- hwyss@ywesee.com
|
25
25
|
|
26
26
|
$: << File.expand_path("../lib", File.dirname(__FILE__))
|
27
27
|
$: << File.expand_path("../ext", File.dirname(__FILE__))
|
28
|
+
$: << File.dirname(__FILE__)
|
28
29
|
|
29
30
|
require 'minitest/autorun'
|
30
31
|
require 'htmlgrid/component'
|
32
|
+
require 'stub/cgi'
|
31
33
|
|
32
34
|
module HtmlGrid
|
33
35
|
class Component
|
@@ -36,6 +38,9 @@ module HtmlGrid
|
|
36
38
|
end
|
37
39
|
|
38
40
|
class TestComponent < Minitest::Test
|
41
|
+
STRING_WITH_SHARP = "Test_#_gartenhat"
|
42
|
+
STRING_WITH_PLUS = "Test_+_plus"
|
43
|
+
STRING_WITH_UMLAUT = "Test_with_Umlaut_üé"
|
39
44
|
class StubAttributeComponent < HtmlGrid::Component
|
40
45
|
HTML_ATTRIBUTES = { "key" => "val" }
|
41
46
|
end
|
@@ -59,7 +64,7 @@ class TestComponent < Minitest::Test
|
|
59
64
|
comp = HtmlGrid::Component.new("foo", "bar")
|
60
65
|
assert_equal("foo", comp.model)
|
61
66
|
assert_equal("bar", comp.session)
|
62
|
-
|
67
|
+
assert_nil(comp.container)
|
63
68
|
assert_equal(false, comp.label?)
|
64
69
|
comp.label = true
|
65
70
|
assert_equal(true, comp.label?)
|
@@ -71,6 +76,35 @@ class TestComponent < Minitest::Test
|
|
71
76
|
assert_equal("bar", comp.session)
|
72
77
|
assert_equal("baz", comp.container)
|
73
78
|
end
|
79
|
+
def test_to_html
|
80
|
+
comp = HtmlGrid::Component.new("foo", "bar", "baz").to_html(CGI.new)
|
81
|
+
assert_equal("", comp)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_gartenhag_to_html
|
85
|
+
comp = HtmlGrid::Component.new('context')
|
86
|
+
comp.value = STRING_WITH_SHARP
|
87
|
+
result = comp.to_html(CGI.new)
|
88
|
+
assert_equal(STRING_WITH_SHARP, result)
|
89
|
+
end
|
90
|
+
def test_minus_to_html
|
91
|
+
comp = HtmlGrid::Component.new('context')
|
92
|
+
comp.value = STRING_WITH_PLUS
|
93
|
+
result = comp.to_html(CGI.new)
|
94
|
+
assert_equal(STRING_WITH_PLUS, result)
|
95
|
+
end
|
96
|
+
def test_umlaut_to_html
|
97
|
+
comp = HtmlGrid::Component.new('context')
|
98
|
+
comp.value = STRING_WITH_UMLAUT
|
99
|
+
result = comp.to_html(CGI.new)
|
100
|
+
assert_equal(STRING_WITH_UMLAUT, result)
|
101
|
+
end
|
102
|
+
def test_escaped_STRING_WITH_UMLAUT_to_html
|
103
|
+
comp = HtmlGrid::Component.new('context')
|
104
|
+
comp.value =CGI.escape(STRING_WITH_UMLAUT)
|
105
|
+
result = comp.to_html(CGI.new)
|
106
|
+
assert_equal(STRING_WITH_UMLAUT, result)
|
107
|
+
end
|
74
108
|
def test_initialize3
|
75
109
|
comp = StubAttributeComponent.new("foo", "bar")
|
76
110
|
expected = { "key" => "val" }
|
data/test/test_composite.rb
CHANGED
@@ -178,13 +178,13 @@ module CompositeTest
|
|
178
178
|
composite = StubCompositeColspan1.new(
|
179
179
|
StubCompositeModel.new, StubCompositeSession.new)
|
180
180
|
composite.full_colspan
|
181
|
-
|
181
|
+
assert_nil(composite.full_colspan)
|
182
182
|
end
|
183
183
|
def test_full_colspan2
|
184
184
|
composite = StubCompositeColspan2.new(
|
185
185
|
StubCompositeModel.new, StubCompositeSession.new)
|
186
186
|
composite.full_colspan
|
187
|
-
|
187
|
+
assert_nil(composite.full_colspan)
|
188
188
|
end
|
189
189
|
def test_full_colspan3
|
190
190
|
composite = StubCompositeColspan3.new(
|
@@ -244,9 +244,7 @@ module CompositeTest
|
|
244
244
|
table = StubComposite4.new(
|
245
245
|
StubCompositeModel.new, StubCompositeSession.new)
|
246
246
|
assert_equal(<<-EXP.gsub(/\n|^\s*/, ''), table.to_html(CGI.new))
|
247
|
-
|
248
|
-
<TR><TD><A class="standard">brafoo</A></TD></TR>
|
249
|
-
</TABLE>
|
247
|
+
<TABLE cellspacing=\"0\"><TR><TD class=\"dradnats\"><A class=\"standard\">brafoo</A></TD></TR></TABLE>
|
250
248
|
EXP
|
251
249
|
end
|
252
250
|
def test_to_back
|
@@ -0,0 +1,133 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
4
|
+
# Copyright (C) 2003 ywesee - intellectual capital connected
|
5
|
+
# Andreas Schrafl, Benjamin Fay, Hannes Wyss, Markus Huggler
|
6
|
+
#
|
7
|
+
# This library is free software; you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation; either
|
10
|
+
# version 2.1 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
# Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public
|
18
|
+
# License along with this library; if not, write to the Free Software
|
19
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
|
+
#
|
21
|
+
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
22
|
+
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
23
|
+
#
|
24
|
+
|
25
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
26
|
+
$: << File.dirname(__FILE__)
|
27
|
+
|
28
|
+
require 'minitest/autorun'
|
29
|
+
require 'stub/cgi'
|
30
|
+
require 'htmlgrid/template'
|
31
|
+
require 'htmlgrid/dojotoolkit'
|
32
|
+
require 'test_helper'
|
33
|
+
require 'flexmock/minitest'
|
34
|
+
require 'sbsm/lookandfeel'
|
35
|
+
|
36
|
+
class TestDojotoolkit < Minitest::Test
|
37
|
+
class StubAttributeComponent < HtmlGrid::Component
|
38
|
+
HTML_ATTRIBUTES = { "key" => "val" }
|
39
|
+
end
|
40
|
+
class StubInitComponent < HtmlGrid::Component
|
41
|
+
attr_reader :init_called
|
42
|
+
def init
|
43
|
+
@init_called = true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
class StubLabelComponent < HtmlGrid::Component
|
47
|
+
LABEL = true
|
48
|
+
end
|
49
|
+
class StubContainer
|
50
|
+
attr_accessor :onsubmit
|
51
|
+
end
|
52
|
+
def setup
|
53
|
+
@component = HtmlGrid::Component.new(nil, nil)
|
54
|
+
@session = flexmock('session') do |s|
|
55
|
+
s.should_receive(:user_agent).and_return('user_agent').by_default
|
56
|
+
end
|
57
|
+
@cgi = CGI.new
|
58
|
+
end
|
59
|
+
def test_dynamic_html
|
60
|
+
comp = HtmlGrid::Component.new("foo", @session)
|
61
|
+
comp.dojo_tooltip = 'my_tooltip'
|
62
|
+
assert_equal("foo", comp.model)
|
63
|
+
assert_equal(false, comp.label?)
|
64
|
+
result= comp.dynamic_html(@cgi)
|
65
|
+
assert(/href="my_tooltip"/.match(result))
|
66
|
+
end
|
67
|
+
def test_dynamic_html_with_msie
|
68
|
+
@session.should_receive(:user_agent).and_return('MSIE 4')
|
69
|
+
comp = HtmlGrid::Component.new("foo", @session)
|
70
|
+
comp.dojo_tooltip = 'my_tooltip'
|
71
|
+
assert_equal("foo", comp.model)
|
72
|
+
assert_equal(false, comp.label?)
|
73
|
+
result= comp.dynamic_html(@cgi)
|
74
|
+
assert(/href="my_tooltip"/.match(result))
|
75
|
+
end
|
76
|
+
end
|
77
|
+
class StubTemplateLookandfeel < SBSM::Lookandfeel
|
78
|
+
RESOURCES = {
|
79
|
+
:css => "test.css"
|
80
|
+
}
|
81
|
+
DICTIONARIES = {
|
82
|
+
"de" => {
|
83
|
+
:html_title => "Test",
|
84
|
+
}
|
85
|
+
}
|
86
|
+
def lookandfeel
|
87
|
+
self
|
88
|
+
end
|
89
|
+
end
|
90
|
+
class StubTemplateSession
|
91
|
+
def flavor
|
92
|
+
"gcc"
|
93
|
+
end
|
94
|
+
def language
|
95
|
+
"de"
|
96
|
+
end
|
97
|
+
def http_protocol
|
98
|
+
'http'
|
99
|
+
end
|
100
|
+
def server_name
|
101
|
+
"testserver.com"
|
102
|
+
end
|
103
|
+
def server_port
|
104
|
+
'80'
|
105
|
+
end
|
106
|
+
alias :default_language :language
|
107
|
+
end
|
108
|
+
class PublicTemplate < HtmlGrid::Template
|
109
|
+
include HtmlGrid::DojoToolkit::DojoTemplate
|
110
|
+
COMPONENTS = {}
|
111
|
+
def dynamic_html_headers(context)
|
112
|
+
headers = super
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class TestTemplate < Minitest::Test
|
117
|
+
def setup
|
118
|
+
lookandfeel = StubTemplateLookandfeel.new(StubTemplateSession.new)
|
119
|
+
@template = PublicTemplate.new(nil, lookandfeel, nil)
|
120
|
+
end
|
121
|
+
def test_dynamic_html_headers
|
122
|
+
@cgi = CGI.new
|
123
|
+
result = @template.to_html(@cgi)
|
124
|
+
@session = flexmock('session')
|
125
|
+
comp = HtmlGrid::Component.new("foo", @session)
|
126
|
+
comp.dojo_tooltip = 'my_tooltip'
|
127
|
+
assert_equal("foo", comp.model)
|
128
|
+
assert_equal(false, comp.label?)
|
129
|
+
result= comp.to_html(@cgi)
|
130
|
+
skip 'tooltip test does not work'
|
131
|
+
assert(/href="my_tooltip"/.match(result))
|
132
|
+
end
|
133
|
+
end
|
data/test/test_grid.rb
CHANGED
@@ -123,9 +123,9 @@ class TestGrid < Minitest::Test
|
|
123
123
|
def test_add_multiple__3
|
124
124
|
@grid.add(["test", nil, "foo"], 0, 0)
|
125
125
|
assert_equal(1, @grid.height)
|
126
|
-
expected = '<TABLE cellspacing="0"><TR><TD>
|
126
|
+
expected = '<TABLE cellspacing="0"><TR><TD>testfoo</TD></TR></TABLE>'
|
127
127
|
assert_equal(expected, @grid.to_html(CGI.new))
|
128
|
-
assert_equal(
|
128
|
+
assert_equal(1, @grid.width)
|
129
129
|
end
|
130
130
|
def test_add_fieldx
|
131
131
|
@grid.add("test", 1, 0)
|
@@ -225,7 +225,7 @@ class TestGrid < Minitest::Test
|
|
225
225
|
expected = '<TABLE cellspacing="0"><TR><TD class="foo"> </TD></TR></TABLE>'
|
226
226
|
assert_equal(expected, @grid.to_html(CGI.new))
|
227
227
|
@grid.add(nil, 1,1)
|
228
|
-
@grid.add_style('bar', 0, 1, 2)
|
228
|
+
@grid.add_style('bar', 0, 1, 2)
|
229
229
|
expected = '<TABLE cellspacing="0"><TR><TD class="foo"> </TD>'
|
230
230
|
expected << '<TD> </TD></TR><TR><TD class="bar"> </TD>'
|
231
231
|
expected << '<TD class="bar"> </TD></TR></TABLE>'
|
@@ -271,7 +271,7 @@ class TestGrid < Minitest::Test
|
|
271
271
|
assert_equal(expected, @grid.to_html(CGI.new))
|
272
272
|
end
|
273
273
|
def test_attributes
|
274
|
-
### this test has changed behavior: its not desirable to have magically
|
274
|
+
### this test has changed behavior: its not desirable to have magically
|
275
275
|
### transferred css information from a component to its container
|
276
276
|
@grid.add(StubGridComponent.new, 0,0)
|
277
277
|
expected = '<TABLE cellspacing="0"><TR><TD>bar</TD></TR></TABLE>'
|
@@ -309,7 +309,7 @@ class TestGrid < Minitest::Test
|
|
309
309
|
end
|
310
310
|
def test_set_row_attributes3
|
311
311
|
@grid.set_row_attributes({'foo' => 'bar'}, 1, 2)
|
312
|
-
|
312
|
+
expected = '<TABLE cellspacing="0"><TR><TD> </TD><TD> </TD></TR><TR foo="bar"><TD> </TD><TD> </TD></TR></TABLE>'
|
313
313
|
assert_equal(expected, @grid.to_html(CGI.new))
|
314
314
|
end
|
315
315
|
def test_insert_row
|
@@ -357,7 +357,7 @@ class TestGrid < Minitest::Test
|
|
357
357
|
end
|
358
358
|
def test_nil_attribute2
|
359
359
|
thing = StubGridComponent.new
|
360
|
-
thing.set_attribute("class", nil)
|
360
|
+
thing.set_attribute("class", nil)
|
361
361
|
@grid.add(thing, 0,0)
|
362
362
|
@grid.to_html(CGI.new)
|
363
363
|
end
|
@@ -367,15 +367,15 @@ class TestGrid < Minitest::Test
|
|
367
367
|
@grid.to_html(CGI.new)
|
368
368
|
end
|
369
369
|
def test_add_negative
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
370
|
+
assert( @grid.add('foo', -1, 0) )
|
371
|
+
assert( @grid.add('foo', 0, -1) )
|
372
|
+
assert( @grid.add(['foo', 'bar'], -1, 0) )
|
373
|
+
assert( @grid.add(['foo', 'bar'], 0, -1) )
|
374
374
|
end
|
375
375
|
def test_add_style_negative
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
376
|
+
assert( @grid.add_style('bar', -1, 1) )
|
377
|
+
assert( @grid.add_style('bar', 1, -1) )
|
378
|
+
assert( @grid.add_style('bar', 1, 1, -1) )
|
379
|
+
assert( @grid.add_style('bar', 1, 1, 1,-1) )
|
380
380
|
end
|
381
381
|
end
|