htmlgrid 1.1.3 → 1.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|