nitro 0.8.0 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +3 -4
- data/ChangeLog +418 -0
- data/LICENSE +1 -1
- data/README +157 -89
- data/RELEASES +50 -0
- data/Rakefile +5 -7
- data/benchmark/nitro/bench.rb +5 -0
- data/benchmark/nitro/simple-webrick-n-200.txt +44 -0
- data/benchmark/nitro/static-webrick-n-200.txt +43 -0
- data/benchmark/nitro/tiny-lhttpd-n-200-c-5.txt +43 -0
- data/benchmark/nitro/tiny-webrick-n-200-c-5.txt +44 -0
- data/benchmark/nitro/tiny-webrick-n-200.txt +44 -0
- data/benchmark/nitro/tiny2-webrick-n-200.txt +44 -0
- data/{lib/nitro/server/cluster.rb → bin/cluster} +26 -30
- data/bin/proto/README +2 -2
- data/bin/proto/{apache.conf → conf/apache.conf} +0 -0
- data/bin/proto/conf/app.conf.rb +22 -0
- data/bin/proto/conf/lhttpd.conf +236 -0
- data/bin/proto/ctl +4 -0
- data/bin/proto/lib/README +5 -0
- data/bin/proto/log/README +3 -0
- data/bin/proto/root/fcgi.rb +6 -0
- data/bin/proto/root/index.xhtml +65 -7
- data/bin/proto/root/m/nitro.png +0 -0
- data/examples/blog/README +7 -5
- data/examples/blog/{apache.conf → conf/apache.conf} +0 -0
- data/examples/blog/conf/app.conf.rb +56 -0
- data/examples/blog/conf/lhttpd.conf +236 -0
- data/examples/blog/ctl +4 -0
- data/examples/blog/lib/blog.rb +11 -136
- data/examples/blog/lib/blog/controller.rb +99 -0
- data/examples/blog/lib/blog/model.rb +39 -0
- data/examples/blog/log/README +3 -0
- data/examples/blog/root/comments.xhtml +2 -2
- data/examples/blog/root/fcgi.rb +6 -0
- data/examples/blog/root/index.xhtml +4 -5
- data/examples/blog/root/login.xhtml +2 -2
- data/examples/blog/root/style.xsl +9 -9
- data/examples/blog/root/view_entry.xhtml +2 -2
- data/examples/flash/conf/app.conf.rb +23 -0
- data/examples/flash/ctl +4 -0
- data/examples/flash/log/README +3 -0
- data/examples/flash/root/index.xhtml +0 -9
- data/examples/flash/root/show_inline_text.xhtml +10 -5
- data/examples/no_xsl_blog/README +12 -0
- data/examples/no_xsl_blog/conf/apache.conf +0 -0
- data/examples/no_xsl_blog/conf/app.conf.rb +57 -0
- data/examples/no_xsl_blog/conf/lhttpd.conf +236 -0
- data/examples/no_xsl_blog/ctl +4 -0
- data/examples/no_xsl_blog/lib/blog.rb +20 -0
- data/examples/no_xsl_blog/lib/blog/controller.rb +102 -0
- data/examples/no_xsl_blog/lib/blog/model.rb +39 -0
- data/examples/no_xsl_blog/lib/blog/template.rb +134 -0
- data/examples/no_xsl_blog/log/README +3 -0
- data/examples/no_xsl_blog/root/comments.xhtml +41 -0
- data/examples/no_xsl_blog/root/entry_form.xhtml +22 -0
- data/examples/no_xsl_blog/root/fcgi.rb +6 -0
- data/examples/no_xsl_blog/root/index.xhtml +39 -0
- data/examples/no_xsl_blog/root/login.xhtml +21 -0
- data/examples/no_xsl_blog/root/m/bubbles.gif +0 -0
- data/examples/no_xsl_blog/root/m/comments_curve.gif +0 -0
- data/examples/no_xsl_blog/root/m/down.gif +0 -0
- data/examples/no_xsl_blog/root/m/footer_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/garrow.gif +0 -0
- data/examples/no_xsl_blog/root/m/gbull.gif +0 -0
- data/examples/no_xsl_blog/root/m/grbull.gif +0 -0
- data/examples/no_xsl_blog/root/m/h1_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/header_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/nitro.gif +0 -0
- data/examples/no_xsl_blog/root/m/obull.gif +0 -0
- data/examples/no_xsl_blog/root/m/page_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/rss.gif +0 -0
- data/examples/no_xsl_blog/root/m/side_title_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/sidebar_bg.gif +0 -0
- data/examples/no_xsl_blog/root/recent_posts.xhtml +14 -0
- data/examples/no_xsl_blog/root/style.css +301 -0
- data/examples/no_xsl_blog/root/view_entry.xhtml +25 -0
- data/examples/no_xsl_blog/root/view_entry.xml +12 -0
- data/examples/og/run.rb +2 -2
- data/examples/tiny/README +2 -2
- data/examples/tiny/conf/apache.conf +5 -0
- data/examples/tiny/conf/app.conf.rb +21 -0
- data/examples/tiny/conf/lhttpd.conf +236 -0
- data/examples/tiny/ctl +4 -0
- data/examples/tiny/log/README +3 -0
- data/examples/tiny/root/fcgi.rb +6 -0
- data/examples/tiny/root/index.xhtml +7 -4
- data/examples/tiny/root/nitro.png +0 -0
- data/lib/glue.rb +13 -9
- data/lib/glue/array.rb +1 -1
- data/lib/glue/cache.rb +1 -1
- data/lib/glue/flexob.rb +12 -0
- data/lib/glue/hash.rb +1 -1
- data/lib/glue/inflector.rb +2 -2
- data/lib/glue/logger.rb +4 -8
- data/lib/glue/misc.rb +14 -0
- data/lib/glue/number.rb +1 -1
- data/lib/glue/object.rb +26 -0
- data/lib/glue/pool.rb +1 -1
- data/lib/glue/property.rb +84 -91
- data/lib/glue/string.rb +1 -1
- data/lib/glue/time.rb +1 -1
- data/lib/glue/validation.rb +1 -1
- data/lib/nitro.rb +18 -6
- data/lib/nitro/adaptors/cgi.rb +291 -0
- data/lib/nitro/adaptors/fastcgi.rb +42 -0
- data/lib/nitro/adaptors/runner.rb +123 -0
- data/lib/nitro/adaptors/webrick.rb +110 -0
- data/lib/nitro/buffering.rb +43 -0
- data/lib/nitro/builders/form.rb +1 -1
- data/lib/nitro/builders/rss.rb +1 -1
- data/{bin → lib/nitro}/cluster.rb +26 -30
- data/lib/nitro/context.rb +82 -0
- data/lib/nitro/controller.rb +50 -0
- data/lib/nitro/cookie.rb +46 -0
- data/lib/nitro/dispatcher.rb +105 -0
- data/lib/nitro/filters.rb +9 -10
- data/lib/nitro/localization.rb +42 -0
- data/lib/nitro/mail.rb +11 -14
- data/lib/nitro/render.rb +275 -0
- data/lib/nitro/request.rb +128 -0
- data/lib/nitro/response.rb +38 -0
- data/lib/nitro/scaffold.rb +11 -11
- data/lib/nitro/session.rb +84 -0
- data/lib/nitro/{server/shaders.rb → shaders.rb} +56 -36
- data/lib/nitro/ui/pager.rb +23 -26
- data/lib/nitro/{sitemap.rb → ui/sitemap.rb} +4 -12
- data/lib/nitro/uri.rb +1 -1
- data/lib/nitro/version.rb +10 -8
- data/lib/og.rb +66 -65
- data/lib/og/backend.rb +1 -1
- data/lib/og/backends/mysql.rb +48 -52
- data/lib/og/backends/psql.rb +34 -37
- data/lib/og/connection.rb +15 -15
- data/lib/og/enchant.rb +16 -9
- data/lib/og/meta.rb +127 -54
- data/lib/og/mock.rb +18 -18
- data/lib/og/version.rb +6 -4
- data/lib/parts/content.rb +4 -8
- data/test/glue/tc_logger.rb +3 -0
- data/test/glue/tc_property.rb +19 -3
- data/test/nitro/adaptors/tc_cgi.rb +63 -0
- data/test/nitro/adaptors/tc_webrick.rb +15 -0
- data/test/nitro/builders/tc_xml.rb +2 -2
- data/test/nitro/tc_context.rb +13 -0
- data/test/nitro/tc_controller.rb +47 -0
- data/test/nitro/tc_dispatcher.rb +64 -0
- data/test/nitro/tc_session.rb +20 -0
- data/test/nitro/{tc_sitemap.rb → ui/tc_sitemap.rb} +1 -1
- data/test/root/blog/list.xhtml +6 -0
- data/test/tc_og.rb +41 -4
- metadata +115 -59
- data/bin/proto/app.rb +0 -20
- data/bin/proto/config.rb +0 -77
- data/examples/blog/app.rb +0 -21
- data/examples/blog/config.rb +0 -95
- data/examples/blog/env.rb +0 -22
- data/examples/flash/README +0 -34
- data/examples/flash/app.rb +0 -20
- data/examples/flash/config.rb +0 -38
- data/examples/flash/lib/flash.rb +0 -40
- data/examples/flash/tmp.swf +0 -0
- data/examples/tiny/app.rb +0 -19
- data/examples/tiny/config.rb +0 -29
- data/examples/tiny/root/nitro-small.png +0 -0
- data/lib/nitro/application.rb +0 -217
- data/lib/nitro/config.rb +0 -128
- data/lib/nitro/events.rb +0 -122
- data/lib/nitro/html.rb +0 -151
- data/lib/nitro/http.rb +0 -102
- data/lib/nitro/l10n.rb +0 -30
- data/lib/nitro/server.rb +0 -59
- data/lib/nitro/server/appserver.rb +0 -67
- data/lib/nitro/server/cookie.rb +0 -87
- data/lib/nitro/server/dispatcher.rb +0 -62
- data/lib/nitro/server/filters.rb +0 -75
- data/lib/nitro/server/filters/autologin.rb +0 -51
- data/lib/nitro/server/fragment.rb +0 -70
- data/lib/nitro/server/handlers.rb +0 -127
- data/lib/nitro/server/render.rb +0 -426
- data/lib/nitro/server/request.rb +0 -658
- data/lib/nitro/server/requestpart.rb +0 -54
- data/lib/nitro/server/script.rb +0 -387
- data/lib/nitro/server/server.rb +0 -57
- data/lib/nitro/server/session.rb +0 -220
- data/lib/nitro/server/user.rb +0 -46
- data/lib/nitro/server/webrick.rb +0 -180
- data/lib/nitro/service.rb +0 -26
- data/lib/xsl/ui.xsl +0 -51
- data/lib/xsl/xforms.xsl +0 -28
- data/test/nitro/server/tc_cookie.rb +0 -34
- data/test/nitro/server/tc_filters.rb +0 -38
- data/test/nitro/server/tc_request.rb +0 -70
- data/test/nitro/server/tc_requestpart.rb +0 -28
- data/test/nitro/server/tc_session.rb +0 -34
- data/test/nitro/tc_events.rb +0 -44
- data/test/nitro/tc_html.rb +0 -79
- data/test/nitro/tc_http.rb +0 -18
data/lib/xsl/ui.xsl
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
<?xml version="1.0" ?>
|
2
|
-
|
3
|
-
<!--
|
4
|
-
author: gmosx
|
5
|
-
-->
|
6
|
-
|
7
|
-
<!DOCTYPE shader
|
8
|
-
[
|
9
|
-
<!ENTITY nbsp "<![CDATA[ ]]>">
|
10
|
-
<!ENTITY copy "<![CDATA[©]]>">
|
11
|
-
<!ENTITY euro "<![CDATA[€]]>">
|
12
|
-
<!ENTITY laquo "<![CDATA[«]]>">
|
13
|
-
<!ENTITY raquo "<![CDATA[»]]>">
|
14
|
-
]>
|
15
|
-
|
16
|
-
<xsl:stylesheet
|
17
|
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
18
|
-
xmlns:x="http://www.navel.gr/xml/pager.xsd"
|
19
|
-
exclude-result-prefixes="x"
|
20
|
-
version="1.0">
|
21
|
-
|
22
|
-
<xsl:template name="x:pager-first" match="x:pager-first">
|
23
|
-
<xsl:apply-templates />
|
24
|
-
<a href="#{target_uri(first_page())}">
|
25
|
-
<xsl:apply-templates />
|
26
|
-
</a>
|
27
|
-
</xsl:template>
|
28
|
-
|
29
|
-
<xsl:template name="x:pager-prev" match="x:pager-prev">
|
30
|
-
<xsl:apply-templates />
|
31
|
-
<a href="#{target_uri(previous_page())}">
|
32
|
-
<xsl:apply-templates />
|
33
|
-
</a>
|
34
|
-
</xsl:template>
|
35
|
-
|
36
|
-
<xsl:template name="x:pager-next" match="x:pager-next">
|
37
|
-
<xsl:apply-templates />
|
38
|
-
<a href="#{target_uri(next_page())}">
|
39
|
-
<xsl:apply-templates />
|
40
|
-
</a>
|
41
|
-
</xsl:template>
|
42
|
-
|
43
|
-
<xsl:template name="x:pager-last" match="x:pager-last">
|
44
|
-
<xsl:apply-templates />
|
45
|
-
<a href="#{target_uri(first_page())}">
|
46
|
-
<xsl:apply-templates />
|
47
|
-
</a>
|
48
|
-
</xsl:template>
|
49
|
-
|
50
|
-
</xsl:stylesheet>
|
51
|
-
|
data/lib/xsl/xforms.xsl
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='iso-8859-7'?>
|
2
|
-
|
3
|
-
<!--
|
4
|
-
gmosx:
|
5
|
-
XForms related templates
|
6
|
-
|
7
|
-
NOT IMPLEMENTED yet.
|
8
|
-
-->
|
9
|
-
|
10
|
-
<xsl:stylesheet
|
11
|
-
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
|
12
|
-
xmlns:xf='http://www.w3.org/2002/08/xforms/cr'
|
13
|
-
xmlns:x='http://www.navel.gr/xml/shader.xsd' version='1.0'>
|
14
|
-
|
15
|
-
<xsl:template match='xf:form'>
|
16
|
-
<table width='100%'>
|
17
|
-
<xsl:apply-templates/>
|
18
|
-
</table>
|
19
|
-
</xsl:template>
|
20
|
-
|
21
|
-
<xsl:template match='xf:input'>
|
22
|
-
<tr><td class='form-label'>
|
23
|
-
<xsl:value-of select='xf:label'/>:<br/>
|
24
|
-
<input type='text'/>
|
25
|
-
</td></tr>
|
26
|
-
</xsl:template>
|
27
|
-
|
28
|
-
</xsl:stylesheet>
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# :nodoc: all
|
2
|
-
|
3
|
-
require "test/unit"
|
4
|
-
|
5
|
-
require "nitro/server/cookie"
|
6
|
-
|
7
|
-
include N
|
8
|
-
|
9
|
-
|
10
|
-
class TC_Cookie < Test::Unit::TestCase
|
11
|
-
# :nodoc: all
|
12
|
-
|
13
|
-
def setup
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_initialize
|
20
|
-
# bug: default path should be /
|
21
|
-
cookie = Cookie.new("nsid", "24324234234234234")
|
22
|
-
assert_equal("/", cookie.path)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_parse
|
26
|
-
res = Cookie.parse("nsid=293230807; nauth=gmosx:meMXs0ifW7JBQ; koko=123&345")
|
27
|
-
|
28
|
-
assert_equal("293230807", res["nsid"][0])
|
29
|
-
assert_equal("gmosx:meMXs0ifW7JBQ", res["nauth"][0])
|
30
|
-
assert_equal("123", res["koko"][0])
|
31
|
-
assert_equal("345", res["koko"][1])
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
|
3
|
-
require "nitro/server/filters"
|
4
|
-
|
5
|
-
class Filter1 < N::ServerFilter
|
6
|
-
# :nodoc: all
|
7
|
-
def process(request)
|
8
|
-
return "filter1:#{process_next(request)}"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class Filter2 < ServerFilter
|
13
|
-
# :nodoc: all
|
14
|
-
def process(request)
|
15
|
-
return "filter2:#{process_next(request)}"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class TC_Server_Filter < Test::Unit::TestCase
|
20
|
-
# :nodoc: all
|
21
|
-
|
22
|
-
def setup
|
23
|
-
@filter = Filter1.new(Filter2.new)
|
24
|
-
end
|
25
|
-
|
26
|
-
def teardown
|
27
|
-
@filter = nil
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_process_next
|
31
|
-
@filter = Filter1.new
|
32
|
-
assert_equal("filter1:", @filter.process(nil))
|
33
|
-
|
34
|
-
@filter = Filter1.new(Filter2.new)
|
35
|
-
assert_equal("filter1:filter2:", @filter.process(nil))
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# :nodoc: all
|
2
|
-
|
3
|
-
require "test/unit"
|
4
|
-
|
5
|
-
require "glue/logger"
|
6
|
-
|
7
|
-
require "nitro/server/cookie"
|
8
|
-
require "nitro/server/request"
|
9
|
-
|
10
|
-
include N
|
11
|
-
|
12
|
-
class TC_Request < Test::Unit::TestCase
|
13
|
-
# :nodoc: all
|
14
|
-
|
15
|
-
def setup
|
16
|
-
end
|
17
|
-
|
18
|
-
def teardown
|
19
|
-
end
|
20
|
-
=begin
|
21
|
-
def test_parse
|
22
|
-
request = N::Request.new
|
23
|
-
|
24
|
-
request.parse_cookies("nsid=293230807; nauth=gmosx:meMXs0ifW7JBQ; koko=123&345")
|
25
|
-
|
26
|
-
# empty cookie should be converted to nil.
|
27
|
-
assert_nil(request.get_cookie("nonexisting-cookie"))
|
28
|
-
|
29
|
-
assert_equal("293230807", request.get_cookie("nsid"))
|
30
|
-
assert_equal("gmosx:meMXs0ifW7JBQ", request.get_cookie("nauth"))
|
31
|
-
|
32
|
-
# multivalued cookie
|
33
|
-
assert_equal(2, request.get_cookie("koko").length)
|
34
|
-
|
35
|
-
assert_equal("123", request.get_cookie("koko")[0])
|
36
|
-
assert_equal("345", request.get_cookie("koko")[1])
|
37
|
-
end
|
38
|
-
=end
|
39
|
-
def test_get_cookie
|
40
|
-
# bug: call get_cookie w/o cookies.
|
41
|
-
request = N::Request.new
|
42
|
-
request.in_cookies = nil
|
43
|
-
assert_nothing_raised {
|
44
|
-
request.get_cookie("test")
|
45
|
-
}
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_tx
|
49
|
-
request = N::Request.new
|
50
|
-
request.session = {}
|
51
|
-
request.parameters = {}
|
52
|
-
|
53
|
-
request.new_tx_entity!(1)
|
54
|
-
assert_equal(1, request.session["TXSEQ"])
|
55
|
-
|
56
|
-
request.new_tx_entity!("test")
|
57
|
-
assert_equal(2, request.session["TXSEQ"])
|
58
|
-
|
59
|
-
assert_equal("TX2", request["txid"])
|
60
|
-
|
61
|
-
assert_equal("test", request.get_tx_entity())
|
62
|
-
request.update_tx_entity!("changed")
|
63
|
-
assert_equal("changed", request.get_tx_entity())
|
64
|
-
assert_equal(2, request.session["TXSEQ"])
|
65
|
-
|
66
|
-
request.del_tx_entity!;
|
67
|
-
assert_equal(nil, request.get_tx_entity())
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# :nodoc: all
|
2
|
-
|
3
|
-
require "test/unit"
|
4
|
-
|
5
|
-
require "nitro/server/cookie"
|
6
|
-
require "nitro/server/request"
|
7
|
-
|
8
|
-
include N
|
9
|
-
|
10
|
-
class TC_N2_Web_Server_RequestPart < Test::Unit::TestCase # :nodoc: all
|
11
|
-
# :nodoc: all
|
12
|
-
|
13
|
-
def setup
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_filename
|
20
|
-
part = RequestPart.new("/home/gmosx/files/pic.gif", "tmp/1232132.0", nil)
|
21
|
-
assert_equal("pic.gif", part.filename)
|
22
|
-
|
23
|
-
# bug: handle \ as separator
|
24
|
-
part = RequestPart.new('C:\gmosx\files\pic.gif', "tmp/1232132.0", nil)
|
25
|
-
assert_equal("pic.gif", part.filename)
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# :nodoc: all
|
2
|
-
|
3
|
-
require "test/unit"
|
4
|
-
|
5
|
-
require "nitro/server/session"
|
6
|
-
|
7
|
-
include N
|
8
|
-
|
9
|
-
class TC_N2_Web_Server_Session < Test::Unit::TestCase
|
10
|
-
# :nodoc: all
|
11
|
-
|
12
|
-
def setup
|
13
|
-
end
|
14
|
-
|
15
|
-
def teardown
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_calculate_id
|
19
|
-
id1 = Session.calculate_id
|
20
|
-
id2 = Session.calculate_id
|
21
|
-
id3 = Session.calculate_id
|
22
|
-
id4 = Session.calculate_id
|
23
|
-
id5 = Session.calculate_id
|
24
|
-
id6 = Session.calculate_id
|
25
|
-
|
26
|
-
assert_not_equal(id1, id2)
|
27
|
-
assert_not_equal(id2, id3)
|
28
|
-
assert_not_equal(id3, id4)
|
29
|
-
assert_not_equal(id4, id5)
|
30
|
-
assert_not_equal(id5, id6)
|
31
|
-
assert_not_equal(id1, id6)
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
data/test/nitro/tc_events.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
# :nodoc: all
|
2
|
-
|
3
|
-
require "test/unit"
|
4
|
-
require "nitro/events"
|
5
|
-
|
6
|
-
class TC_Events < Test::Unit::TestCase
|
7
|
-
# :nodoc: all
|
8
|
-
include N
|
9
|
-
|
10
|
-
def setup
|
11
|
-
$flag = 0
|
12
|
-
$flag2 = 1
|
13
|
-
@events = N::EventManager.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
@events = nil
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_events
|
21
|
-
@events.add_handler("my.event", "test1", proc { |val|
|
22
|
-
$flag = val
|
23
|
-
})
|
24
|
-
@events.add_handler("my.event", "test2", proc { |val|
|
25
|
-
$flag2 += val
|
26
|
-
})
|
27
|
-
|
28
|
-
@events.fire("my.event", 5)
|
29
|
-
|
30
|
-
assert_equal(5, $flag)
|
31
|
-
assert_equal(6, $flag2)
|
32
|
-
|
33
|
-
@events.fire("my.event", 5)
|
34
|
-
|
35
|
-
assert_equal(11, $flag2)
|
36
|
-
|
37
|
-
# test remove handler
|
38
|
-
|
39
|
-
@events.remove_handler("my.event", "test2")
|
40
|
-
@events.fire("my.event", 5)
|
41
|
-
|
42
|
-
assert_equal(11, $flag2)
|
43
|
-
end
|
44
|
-
end
|
data/test/nitro/tc_html.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
|
2
|
-
require "test/unit"
|
3
|
-
require "nitro/html"
|
4
|
-
|
5
|
-
include N
|
6
|
-
|
7
|
-
class TC_HtmlUtils < Test::Unit::TestCase
|
8
|
-
# :nodoc: all
|
9
|
-
|
10
|
-
def test_escape
|
11
|
-
assert_equal("<b>test</b>", HtmlUtils::escape("<b>test</b>"))
|
12
|
-
assert_equal("<p>test", HtmlUtils::escape("<p>test"))
|
13
|
-
assert_equal("", HtmlUtils::escape(""))
|
14
|
-
assert_equal(nil, HtmlUtils::escape(nil))
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_expand_urls
|
18
|
-
s = "visit http://www.navel.gr"
|
19
|
-
r = "visit <a href='http://www.navel.gr'>http://www.navel.gr</a>"
|
20
|
-
assert_equal(r, HtmlUtils::expand_urls(s))
|
21
|
-
|
22
|
-
s = "visit www.navel.gr"
|
23
|
-
r = "visit <a href='http://www.navel.gr'>http://www.navel.gr</a>"
|
24
|
-
assert_equal(r, HtmlUtils::expand_urls(s))
|
25
|
-
|
26
|
-
assert_equal(nil, HtmlUtils::expand_urls(nil))
|
27
|
-
|
28
|
-
s = "visit: www.navel.gr"
|
29
|
-
r = "visit: <a href='http://www.navel.gr'>http://www.navel.gr</a>"
|
30
|
-
assert_equal(r, HtmlUtils::expand_urls(s))
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_only_safe_tags
|
34
|
-
s = "<table>lala</table>"
|
35
|
-
r = "<table>lala</table>"
|
36
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
37
|
-
|
38
|
-
# bug: img is NOT A SAFE tag, fucks up layout
|
39
|
-
s = "<a href='lala'<img src='koko'><table>"
|
40
|
-
# lala is quoted because it belongs in an open tag!
|
41
|
-
r = "<a href='lala'><img src='koko'><table>"
|
42
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
43
|
-
|
44
|
-
s = "<a href='lala'><img src='koko'><table>"
|
45
|
-
# lala is not quoted because it belongs in a valid tag!
|
46
|
-
r = "<a href='lala'><img src='koko'><table>"
|
47
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
48
|
-
|
49
|
-
s = "<a href='lala'<table<bar<koko"
|
50
|
-
# lala is quoted because it belongs in an open tag!
|
51
|
-
r = "<a href='lala'><table><bar><koko"
|
52
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
53
|
-
|
54
|
-
s = "<a href='lala'<foo>text<bar<koko"
|
55
|
-
# lala is quoted because it belongs in an open tag!
|
56
|
-
r = "<a href='lala'><foo>text<bar><koko"
|
57
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
58
|
-
|
59
|
-
# bug: open ' quotes fuckup the html
|
60
|
-
s = "<tr><td><a href='koko</td></tr>"
|
61
|
-
r = "<tr><td><a href='koko></td></tr>"
|
62
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
63
|
-
|
64
|
-
# open quotes on valid tag
|
65
|
-
s = "<a href='koko>kokok</a>"
|
66
|
-
r = "<a href='koko>kokok</a>"
|
67
|
-
assert_equal(r, HtmlUtils::only_safe_tags(s))
|
68
|
-
|
69
|
-
assert_equal(nil, HtmlUtils::only_safe_tags(nil))
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_convert_newlines
|
73
|
-
# bug:
|
74
|
-
|
75
|
-
assert_equal(nil, HtmlUtils::convert_newlines(nil))
|
76
|
-
assert_equal(nil, HtmlUtils::convert_newlines(""))
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
data/test/nitro/tc_http.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "nitro/http"
|
3
|
-
|
4
|
-
class TC_HttpUtils < Test::Unit::TestCase
|
5
|
-
# :nodoc: all
|
6
|
-
|
7
|
-
def setup
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_time_to_string
|
14
|
-
r = N::HttpUtils.time_to_string(Time.now)
|
15
|
-
assert_match(/GMT/, r)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|