ramaze 0.1.4 → 0.2.0
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.
- data/Rakefile +26 -6
- data/bin/ramaze +8 -1
- data/doc/AUTHORS +13 -11
- data/doc/CHANGELOG +472 -13
- data/doc/LEGAL +22 -0
- data/doc/README +1 -4
- data/doc/TODO +7 -2
- data/doc/changes.txt +472 -13
- data/doc/changes.xml +472 -13
- data/doc/meta/announcement.txt +21 -23
- data/doc/readme_chunks/appendix.txt +0 -3
- data/doc/readme_chunks/features.txt +1 -1
- data/examples/auth/auth.rb +49 -0
- data/examples/auth/template/layout.haml +20 -0
- data/examples/auth/template/login.haml +16 -0
- data/examples/blog/spec/blog.rb +1 -0
- data/examples/caching.rb +5 -6
- data/examples/css.rb +37 -0
- data/examples/layout.rb +3 -17
- data/examples/simple_auth.rb +23 -0
- data/examples/sourceview/public/images/file.gif +0 -0
- data/examples/sourceview/public/images/folder.gif +0 -0
- data/examples/sourceview/public/images/tv-collapsable-last.gif +0 -0
- data/examples/sourceview/public/images/tv-collapsable.gif +0 -0
- data/examples/sourceview/public/images/tv-expandable-last.gif +0 -0
- data/examples/sourceview/public/images/tv-expandable.gif +0 -0
- data/examples/sourceview/public/images/tv-item-last.gif +0 -0
- data/examples/sourceview/public/images/tv-item.gif +0 -0
- data/examples/sourceview/public/jquery.js +11 -0
- data/examples/sourceview/public/jquery.treeview.css +47 -0
- data/examples/sourceview/public/jquery.treeview.js +223 -0
- data/examples/sourceview/public/sourceview.js +16 -0
- data/examples/sourceview/sourceview.rb +74 -0
- data/examples/sourceview/template/index.haml +43 -0
- data/examples/templates/template/external.nag +28 -0
- data/examples/templates/template/external.xsl +57 -0
- data/examples/templates/template_amrita2.rb +2 -4
- data/examples/templates/template_erubis.rb +1 -1
- data/examples/templates/template_haml.rb +1 -1
- data/examples/templates/template_liquid.rb +2 -4
- data/examples/templates/template_markaby.rb +2 -4
- data/examples/templates/template_nagoro.rb +53 -0
- data/examples/templates/template_remarkably.rb +2 -4
- data/examples/templates/template_xslt.rb +52 -0
- data/examples/whywiki/spec/whywiki.rb +63 -0
- data/examples/whywiki/start.rb +11 -13
- data/examples/whywiki/template/edit.xhtml +3 -3
- data/examples/whywiki/template/show.xhtml +5 -8
- data/examples/wikore/spec/wikore.rb +115 -0
- data/examples/wikore/src/controller.rb +81 -0
- data/examples/wikore/src/model.rb +51 -0
- data/examples/wikore/start.rb +6 -0
- data/examples/wikore/template/index.xhtml +8 -0
- data/examples/wiktacular/spec/wiktacular.rb +1 -0
- data/examples/wiktacular/src/controller.rb +1 -1
- data/lib/ramaze.rb +6 -3
- data/lib/ramaze/action.rb +2 -13
- data/lib/ramaze/action/render.rb +36 -18
- data/lib/ramaze/adapter.rb +1 -1
- data/lib/ramaze/adapter/cgi.rb +0 -3
- data/lib/ramaze/adapter/evented_mongrel.rb +7 -0
- data/lib/ramaze/adapter/mongrel.rb +4 -13
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +7 -0
- data/lib/ramaze/cache.rb +12 -7
- data/lib/ramaze/contrib.rb +22 -0
- data/lib/ramaze/contrib/auto_params.rb +128 -0
- data/lib/ramaze/contrib/auto_params/get_args.rb +56 -0
- data/lib/ramaze/contrib/gzip_filter.rb +57 -0
- data/lib/ramaze/contrib/route.rb +40 -0
- data/lib/ramaze/contrib/sequel/fill.rb +12 -0
- data/lib/ramaze/controller.rb +17 -6
- data/lib/ramaze/controller/resolve.rb +51 -14
- data/lib/ramaze/dispatcher.rb +15 -13
- data/lib/ramaze/dispatcher/action.rb +4 -3
- data/lib/ramaze/dispatcher/directory.rb +3 -3
- data/lib/ramaze/dispatcher/error.rb +1 -1
- data/lib/ramaze/dispatcher/file.rb +17 -6
- data/lib/ramaze/error.rb +3 -0
- data/lib/ramaze/gestalt.rb +28 -8
- data/lib/ramaze/global.rb +26 -6
- data/lib/ramaze/global/globalstruct.rb +31 -6
- data/lib/ramaze/helper.rb +2 -1
- data/lib/ramaze/helper/aspect.rb +2 -2
- data/lib/ramaze/helper/auth.rb +6 -9
- data/lib/ramaze/helper/cache.rb +89 -9
- data/lib/ramaze/helper/cgi.rb +2 -2
- data/lib/ramaze/helper/formatting.rb +44 -0
- data/lib/ramaze/helper/link.rb +7 -5
- data/lib/ramaze/helper/partial.rb +6 -4
- data/lib/ramaze/helper/redirect.rb +24 -9
- data/lib/ramaze/helper/stack.rb +6 -1
- data/lib/ramaze/inform/growl.rb +1 -1
- data/lib/ramaze/inform/informer.rb +2 -1
- data/lib/ramaze/inform/informing.rb +6 -0
- data/lib/ramaze/inform/syslog.rb +1 -0
- data/lib/ramaze/snippets/array/put_within.rb +24 -0
- data/lib/ramaze/snippets/dictionary.rb +499 -0
- data/lib/ramaze/snippets/numeric/filesize_format.rb +19 -0
- data/lib/ramaze/snippets/ordered_set.rb +31 -0
- data/lib/ramaze/snippets/string/DIVIDE.rb +1 -1
- data/lib/ramaze/snippets/string/snake_case.rb +1 -1
- data/lib/ramaze/snippets/struct/values_at.rb +5 -1
- data/lib/ramaze/snippets/thread/into.rb +25 -0
- data/lib/ramaze/sourcereload.rb +39 -19
- data/lib/ramaze/spec/helper.rb +4 -1
- data/lib/ramaze/spec/helper/{context.rb → browser.rb} +3 -0
- data/lib/ramaze/spec/helper/layout.rb +3 -0
- data/lib/ramaze/spec/helper/minimal.rb +3 -0
- data/lib/ramaze/spec/helper/mock_http.rb +8 -5
- data/lib/ramaze/spec/helper/requester.rb +4 -1
- data/lib/ramaze/spec/helper/wrap.rb +15 -7
- data/lib/ramaze/template.rb +5 -1
- data/lib/ramaze/template/ezamar/engine.rb +2 -3
- data/lib/ramaze/template/ezamar/morpher.rb +26 -45
- data/lib/ramaze/template/nagoro.rb +53 -0
- data/lib/ramaze/template/none.rb +14 -0
- data/lib/ramaze/template/xslt.rb +96 -0
- data/lib/ramaze/tool.rb +0 -1
- data/lib/ramaze/tool/localize.rb +7 -2
- data/lib/ramaze/trinity/request.rb +1 -0
- data/lib/ramaze/trinity/session.rb +3 -3
- data/lib/ramaze/version.rb +2 -2
- data/rake_tasks/conf.rake +1 -2
- data/rake_tasks/{maintaince.rake → maintenance.rake} +25 -17
- data/spec/contrib/auto_params.rb +97 -0
- data/spec/contrib/route.rb +60 -0
- data/spec/contrib/sequel/fill.rb +46 -0
- data/spec/examples/caching.rb +1 -2
- data/spec/examples/css.rb +12 -0
- data/spec/examples/element.rb +0 -1
- data/spec/examples/hello.rb +0 -1
- data/spec/examples/simple.rb +0 -1
- data/spec/helper.rb +3 -2
- data/spec/ramaze/action/cache.rb +24 -7
- data/spec/ramaze/action/layout.rb +19 -11
- data/spec/ramaze/action/template/sub/sub_wrapper.xhtml +1 -0
- data/spec/ramaze/controller.rb +11 -0
- data/spec/ramaze/controller/template_resolving.rb +28 -27
- data/spec/ramaze/dispatcher.rb +32 -0
- data/spec/ramaze/dispatcher/directory.rb +2 -1
- data/spec/ramaze/element.rb +1 -1
- data/spec/ramaze/gestalt.rb +28 -0
- data/spec/ramaze/helper/aspect.rb +14 -3
- data/spec/ramaze/helper/cache.rb +78 -13
- data/spec/ramaze/helper/formatting.rb +20 -0
- data/spec/ramaze/helper/link.rb +2 -0
- data/spec/ramaze/helper/partial.rb +12 -1
- data/spec/ramaze/helper/redirect.rb +44 -8
- data/spec/ramaze/helper/stack.rb +3 -3
- data/spec/ramaze/helper/template/loop.xhtml +3 -0
- data/spec/ramaze/helper/template/num.xhtml +1 -0
- data/spec/ramaze/helper/template/recursive.xhtml +8 -0
- data/spec/ramaze/morpher.rb +25 -6
- data/spec/ramaze/params.rb +6 -2
- data/spec/ramaze/request.rb +5 -2
- data/spec/ramaze/session.rb +19 -0
- data/spec/ramaze/template.rb +2 -2
- data/spec/ramaze/template/amrita2.rb +2 -2
- data/spec/ramaze/template/erubis.rb +2 -2
- data/spec/ramaze/template/ezamar.rb +6 -3
- data/spec/ramaze/template/haml.rb +3 -3
- data/spec/ramaze/template/liquid.rb +1 -1
- data/spec/ramaze/template/markaby.rb +1 -1
- data/spec/ramaze/template/nagoro.rb +65 -0
- data/spec/ramaze/template/nagoro/another/long/action.nag +1 -0
- data/spec/ramaze/template/nagoro/combined.nag +1 -0
- data/spec/ramaze/template/nagoro/file_only.nag +1 -0
- data/spec/ramaze/template/nagoro/index.nag +1 -0
- data/spec/ramaze/template/nagoro/nested.nag +1 -0
- data/spec/ramaze/template/nagoro/some__long__action.nag +1 -0
- data/spec/ramaze/template/nagoro/sum.nag +1 -0
- data/spec/ramaze/template/remarkably.rb +1 -1
- data/spec/ramaze/template/sass.rb +1 -1
- data/spec/ramaze/template/xslt.rb +93 -0
- data/spec/ramaze/template/xslt/concat_words.xsl +16 -0
- data/spec/ramaze/template/xslt/index.xsl +14 -0
- data/spec/ramaze/template/xslt/products.xsl +32 -0
- data/spec/ramaze/template/xslt/ruby_version.xsl +14 -0
- data/spec/snippets/array/put_within.rb +32 -0
- data/spec/snippets/numeric/filesize_format.rb +12 -0
- data/spec/snippets/ordered_set.rb +56 -0
- data/spec/snippets/ramaze/caller_lines.rb +6 -3
- data/spec/snippets/string/snake_case.rb +3 -0
- metadata +118 -22
- data/doc/README.html +0 -737
- data/examples/fcgi.rb +0 -13
- data/lib/ramaze/snippets/numeric/human_readable_filesize_format.rb +0 -33
- data/lib/ramaze/tool/tidy.rb +0 -104
- data/spec/ramaze/controller/template/edit.xhtml +0 -1
- data/spec/ramaze/controller/template/edit/content.xhtml +0 -1
- data/spec/ramaze/tidy.rb +0 -12
- data/spec/snippets/numeric/human_readable_filesize_format.rb +0 -11
data/spec/ramaze/helper/cache.rb
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
require 'spec/helper'
|
|
5
5
|
|
|
6
6
|
class TCCacheHelperController < Ramaze::Controller
|
|
7
|
-
map
|
|
8
|
-
helper :cache
|
|
7
|
+
map :/
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
helper :cache
|
|
10
|
+
cache :cached_action
|
|
11
11
|
|
|
12
12
|
def index
|
|
13
13
|
self.class.name
|
|
@@ -36,35 +36,100 @@ class TCCacheHelperController < Ramaze::Controller
|
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
+
class TCCacheHelperTTLController < Ramaze::Controller
|
|
40
|
+
map '/ttl'
|
|
41
|
+
|
|
42
|
+
helper :cache
|
|
43
|
+
cache :index, :ttl => 1
|
|
44
|
+
|
|
45
|
+
def cached_list
|
|
46
|
+
actions_cached.inspect
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def index
|
|
50
|
+
rand
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class TCCacheHelperKeyController < Ramaze::Controller
|
|
55
|
+
map '/key'
|
|
56
|
+
|
|
57
|
+
helper :cache
|
|
58
|
+
cache :name, :key => lambda{ request['name'] }
|
|
59
|
+
|
|
60
|
+
def cached_list
|
|
61
|
+
actions_cached.inspect
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def name
|
|
65
|
+
"hi #{request['name']} #{rand}"
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class TCCacheHelperOldController < Ramaze::Controller
|
|
70
|
+
map '/old'
|
|
71
|
+
|
|
72
|
+
helper :cache
|
|
73
|
+
trait :actions_cached => [:index, :action]
|
|
74
|
+
|
|
75
|
+
def index
|
|
76
|
+
rand
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def action with, param
|
|
80
|
+
with + param + rand.to_s
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
39
84
|
describe "CacheHelper" do
|
|
40
85
|
ramaze
|
|
41
86
|
|
|
87
|
+
def req(path='/', *args) get(path, *args).body end
|
|
88
|
+
|
|
42
89
|
it "testrun" do
|
|
43
|
-
|
|
90
|
+
req.should == 'TCCacheHelperController'
|
|
44
91
|
end
|
|
45
92
|
|
|
46
|
-
def cached_value() get('/cached_value').body end
|
|
47
|
-
def uncache_value() get('/uncache_value').body end
|
|
48
|
-
def cached_action() get('/cached_action').body end
|
|
49
|
-
def uncache_actions() get('/uncache_actions').body end
|
|
50
|
-
|
|
51
93
|
it "cached value" do
|
|
52
94
|
3.times do
|
|
53
|
-
lambda{ cached_value }.should_not change{ cached_value }
|
|
95
|
+
lambda{ req('/cached_value') }.should_not change{ req('/cached_value') }
|
|
54
96
|
end
|
|
55
97
|
|
|
56
98
|
3.times do
|
|
57
|
-
lambda{ uncache_value }.should change{ cached_value }
|
|
99
|
+
lambda{ req('/uncache_value') }.should change{ req('/cached_value') }
|
|
58
100
|
end
|
|
59
101
|
end
|
|
60
102
|
|
|
61
103
|
it "cached action" do
|
|
62
104
|
3.times do
|
|
63
|
-
lambda{ cached_action }.should_not change{ cached_action }
|
|
105
|
+
lambda{ req('/cached_action') }.should_not change{ req('/cached_action') }
|
|
64
106
|
end
|
|
65
107
|
|
|
66
108
|
3.times do
|
|
67
|
-
lambda{ uncache_actions }.should change{ cached_action }
|
|
109
|
+
lambda{ req('/uncache_actions') }.should change{ req('/cached_action') }
|
|
68
110
|
end
|
|
69
111
|
end
|
|
112
|
+
|
|
113
|
+
it "should support options" do
|
|
114
|
+
req('/ttl/cached_list').should == { :index => { :ttl => 1 } }.inspect
|
|
115
|
+
req('/key/cached_list').should =~ /^\{:name=>\{:key=>/
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it "should expire cache after time-to-live" do
|
|
119
|
+
orig_value = get('/ttl').body
|
|
120
|
+
req('/ttl').should == orig_value
|
|
121
|
+
sleep 1
|
|
122
|
+
req('/ttl').should_not == orig_value
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it "should cache using key lambda if provided" do
|
|
126
|
+
lambda{ req('/key/name', {:name=>'Aman'}) }.should_not change{ req('/key/name', {:name=>'Aman'}) }
|
|
127
|
+
req('/key/name', {:name=>'Bob'}).should =~ /^hi Bob/
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
it "should remain backwards compatible" do
|
|
131
|
+
lambda{ req('/old') }.should_not change{ req('/old') }
|
|
132
|
+
lambda{ req('/old/action/one/two') }.should_not change{ req('/old/action/one/two') }
|
|
133
|
+
req('/old/action/two/three').should =~ /^twothree/
|
|
134
|
+
end
|
|
70
135
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spec/helper'
|
|
2
|
+
require 'ramaze/helper/formatting'
|
|
3
|
+
|
|
4
|
+
describe 'FormattingHelper' do
|
|
5
|
+
include Ramaze::FormattingHelper
|
|
6
|
+
|
|
7
|
+
it 'should format numbers' do
|
|
8
|
+
number_format(2_123_456).should == '2,123,456'
|
|
9
|
+
number_format(1234.567).should == '1,234.567'
|
|
10
|
+
number_format(123456.789, '.').should == '123.456,789'
|
|
11
|
+
number_format(123456.789123, '.').should == '123.456,789123'
|
|
12
|
+
number_format(132123456.789123, '.').should == '132.123.456,789123'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should return difference in time as a string' do
|
|
16
|
+
time_diff(Time.now-29).should == 'less than a minute'
|
|
17
|
+
time_diff(Time.now-60).should == '1 minute'
|
|
18
|
+
time_diff(Time.now, Time.now+29, true).should == 'half a minute'
|
|
19
|
+
end
|
|
20
|
+
end
|
data/spec/ramaze/helper/link.rb
CHANGED
|
@@ -14,6 +14,8 @@ describe "A" do
|
|
|
14
14
|
it 'should build links' do
|
|
15
15
|
A('title', :href => '/').should == %(<a href="/">title</a>)
|
|
16
16
|
A('title', :href => '/foo').should == %(<a href="/foo">title</a>)
|
|
17
|
+
A('title', :href => '/foo?x=y').should == %{<a href="/foo?x=y">title</a>}
|
|
18
|
+
A('/foo?x=y').should == %{<a href="/foo?x=y">/foo?x=y</a>}
|
|
17
19
|
|
|
18
20
|
a = A('title', :href => '/foo', :class => :none)
|
|
19
21
|
a.should =~ /class="none"/
|
|
@@ -6,7 +6,6 @@ require 'spec/helper'
|
|
|
6
6
|
class TCPartialHelperController < Ramaze::Controller
|
|
7
7
|
map '/'
|
|
8
8
|
helper :partial
|
|
9
|
-
template_root(__DIR__/:template)
|
|
10
9
|
|
|
11
10
|
def index
|
|
12
11
|
'<html><head><title>#{render_partial("/title")}</title></head></html>'
|
|
@@ -21,6 +20,10 @@ class TCPartialHelperController < Ramaze::Controller
|
|
|
21
20
|
'From Action | ' +
|
|
22
21
|
render_template("partial.xhtml")
|
|
23
22
|
end
|
|
23
|
+
|
|
24
|
+
def recursive
|
|
25
|
+
@n = 1
|
|
26
|
+
end
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
describe "PartialHelper" do
|
|
@@ -35,4 +38,12 @@ describe "PartialHelper" do
|
|
|
35
38
|
it 'should be able to render a template in the current scope' do
|
|
36
39
|
get('/composed').body.should == 'From Action | From Partial there'
|
|
37
40
|
end
|
|
41
|
+
|
|
42
|
+
it 'should render_template in a loop' do
|
|
43
|
+
get('/loop').body.gsub(/\s/,'').should == '12345'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'should work recursively' do
|
|
47
|
+
get('/recursive').body.gsub(/\s/,'').should == '{1{2{3{44}4}3}2}'
|
|
48
|
+
end
|
|
38
49
|
end
|
|
@@ -5,7 +5,6 @@ require 'spec/helper'
|
|
|
5
5
|
|
|
6
6
|
class TCRedirectHelperController < Ramaze::Controller
|
|
7
7
|
map :/
|
|
8
|
-
helper :redirect
|
|
9
8
|
|
|
10
9
|
def index
|
|
11
10
|
self.class.name
|
|
@@ -36,10 +35,27 @@ class TCRedirectHelperController < Ramaze::Controller
|
|
|
36
35
|
catch(:redirect){ double_redirection }
|
|
37
36
|
'bar'
|
|
38
37
|
end
|
|
38
|
+
|
|
39
|
+
def redirect_method
|
|
40
|
+
redirect Rs(:noop)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def absolute_uri_redirect
|
|
44
|
+
redirect 'http://localhost:7007/noop'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def loop
|
|
48
|
+
respond 'no loop'
|
|
49
|
+
'loop'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def respond_with_status
|
|
53
|
+
respond 'not found', 404
|
|
54
|
+
end
|
|
39
55
|
end
|
|
40
56
|
|
|
41
57
|
describe "RedirectHelper" do
|
|
42
|
-
ramaze(:adapter => :
|
|
58
|
+
ramaze(:adapter => :mongrel)
|
|
43
59
|
|
|
44
60
|
b = Browser.new
|
|
45
61
|
|
|
@@ -47,21 +63,41 @@ describe "RedirectHelper" do
|
|
|
47
63
|
b.get('/').should == "TCRedirectHelperController"
|
|
48
64
|
end
|
|
49
65
|
|
|
50
|
-
it "
|
|
66
|
+
it "should do redirection" do
|
|
51
67
|
b.story do
|
|
52
|
-
get('/redirection').should
|
|
68
|
+
get('/redirection').should == "TCRedirectHelperController"
|
|
53
69
|
get('/double_redirection').should == "TCRedirectHelperController"
|
|
54
|
-
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'should be possible to catch a redirect' do
|
|
74
|
+
b.story do
|
|
75
|
+
get('/no_actual_redirect').should == 'foo'
|
|
55
76
|
get('/no_actual_double_redirect').should == 'bar'
|
|
56
77
|
end
|
|
57
78
|
end
|
|
58
79
|
|
|
59
|
-
it "redirect to referer" do
|
|
80
|
+
it "should redirect to referer" do
|
|
60
81
|
b.story do
|
|
61
|
-
get('/').should
|
|
82
|
+
get('/').should == "TCRedirectHelperController"
|
|
62
83
|
get('/redirect_referer_action').should == 'TCRedirectHelperController'
|
|
63
|
-
get('/noop').should
|
|
84
|
+
get('/noop').should == 'noop'
|
|
64
85
|
get('/redirect_referer_action').should == 'noop'
|
|
65
86
|
end
|
|
66
87
|
end
|
|
88
|
+
|
|
89
|
+
it "should work with R()" do
|
|
90
|
+
b.get('/redirect_method').should == 'noop'
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "should work with absolute uris" do
|
|
94
|
+
b.get('/absolute_uri_redirect').should == 'noop'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it 'should allow respond() that ignores return values and templates' do
|
|
98
|
+
get('/loop').body.should == 'no loop'
|
|
99
|
+
page = get('/respond_with_status')
|
|
100
|
+
page.status.should == 404
|
|
101
|
+
page.body.should == 'not found'
|
|
102
|
+
end
|
|
67
103
|
end
|
data/spec/ramaze/helper/stack.rb
CHANGED
|
@@ -56,15 +56,15 @@ describe "StackHelper" do
|
|
|
56
56
|
it "indirect login" do
|
|
57
57
|
browser do
|
|
58
58
|
get('/foo').should == 'logged in'
|
|
59
|
-
get('/
|
|
60
|
-
eget('/').should == {:logged_in => true
|
|
59
|
+
get('/secure').should == 'secret content'
|
|
60
|
+
eget('/').should == {:logged_in => true}
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
it "indirect login with params" do
|
|
65
65
|
browser do
|
|
66
66
|
eget('/bar', 'x' => 'y').should == {'x' => 'y'}
|
|
67
|
-
eget('/').should == {:logged_in => true
|
|
67
|
+
eget('/').should == {:logged_in => true}
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#{@n}
|
data/spec/ramaze/morpher.rb
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
require 'spec/helper'
|
|
5
5
|
|
|
6
6
|
testcase_requires 'hpricot'
|
|
7
|
+
require 'ramaze/template/ezamar/morpher'
|
|
7
8
|
|
|
8
9
|
class TCMorpherController < Ramaze::Controller
|
|
9
10
|
map '/'
|
|
@@ -48,6 +49,20 @@ class TCMorpherController < Ramaze::Controller
|
|
|
48
49
|
<div each="@elem">#{_e}</div>
|
|
49
50
|
}
|
|
50
51
|
end
|
|
52
|
+
|
|
53
|
+
def complex_one
|
|
54
|
+
%q{
|
|
55
|
+
<html>
|
|
56
|
+
<head>
|
|
57
|
+
<title>test morph</title>
|
|
58
|
+
</head>
|
|
59
|
+
<body>
|
|
60
|
+
<a if="1" href="foo">foo</a>
|
|
61
|
+
<a unless="1" href="bar">bar</a>
|
|
62
|
+
</body>
|
|
63
|
+
</html>
|
|
64
|
+
}
|
|
65
|
+
end
|
|
51
66
|
end
|
|
52
67
|
|
|
53
68
|
describe "Morpher" do
|
|
@@ -62,32 +77,36 @@ describe "Morpher" do
|
|
|
62
77
|
get(*url).body.split("\n").join.strip
|
|
63
78
|
end
|
|
64
79
|
|
|
65
|
-
it "testrun" do
|
|
80
|
+
it "should do a testrun" do
|
|
66
81
|
clean_get('/').should == 'TCMorpherController'
|
|
67
82
|
end
|
|
68
83
|
|
|
69
|
-
it "if" do
|
|
84
|
+
it "should morph if" do
|
|
70
85
|
clean_get('/simple_if').should == '<p>orig</p>'
|
|
71
86
|
clean_get('/simple_if/bar').should == '<p>bar</p>'
|
|
72
87
|
end
|
|
73
88
|
|
|
74
|
-
it "unless" do
|
|
89
|
+
it "should morph unless" do
|
|
75
90
|
clean_get('/simple_unless').should == '<p>orig</p>'
|
|
76
91
|
clean_get('/simple_unless/bar').should == '<p>bar</p>'
|
|
77
92
|
end
|
|
78
93
|
|
|
79
|
-
it "for" do
|
|
94
|
+
it "should morph for" do
|
|
80
95
|
clean_get('/simple_for').should == "<div>0</div><div>1</div>"
|
|
81
96
|
clean_get('/simple_for/3').should == "<div>0</div><div>1</div><div>2</div><div>3</div>"
|
|
82
97
|
end
|
|
83
98
|
|
|
84
|
-
it "times" do
|
|
99
|
+
it "should morph times" do
|
|
85
100
|
clean_get('/simple_times').should == "<div>0</div>"
|
|
86
101
|
clean_get('/simple_times/3').should == "<div>0</div><div>1</div><div>2</div>"
|
|
87
102
|
end
|
|
88
103
|
|
|
89
|
-
it "each" do
|
|
104
|
+
it "should morph each" do
|
|
90
105
|
clean_get('/simple_each').should == ''
|
|
91
106
|
clean_get('/simple_each/1/2/3').should == "<div>1</div><div>2</div><div>3</div>"
|
|
92
107
|
end
|
|
108
|
+
|
|
109
|
+
it 'should morph a more complex document' do
|
|
110
|
+
clean_get('/complex_one').should == '<html> <head> <title>test morph</title> </head> <body> <a href="foo">foo</a> </body></html>'
|
|
111
|
+
end
|
|
93
112
|
end
|
data/spec/ramaze/params.rb
CHANGED
|
@@ -55,7 +55,7 @@ class TCParamsController3 < Ramaze::Controller
|
|
|
55
55
|
map '/ma'
|
|
56
56
|
|
|
57
57
|
def index(*args)
|
|
58
|
-
request.params['foo'].
|
|
58
|
+
request.params['foo'].to_s.dump
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
|
@@ -141,6 +141,10 @@ describe "Simple Parameters" do
|
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
it 'params should have no content without params' do
|
|
144
|
-
get('/ma').body.should == '
|
|
144
|
+
get('/ma').body.should == '""'
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
it 'should have a parameter via QUERY_PARAMS' do
|
|
148
|
+
get('/ma', 'foo' => 'bar').body.should == '"bar"'
|
|
145
149
|
end
|
|
146
150
|
end
|
data/spec/ramaze/request.rb
CHANGED
|
@@ -20,6 +20,9 @@ class TCRequestController < Ramaze::Controller
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def put_inspect(file)
|
|
23
|
+
# referencing request.rack_params breaks this test
|
|
24
|
+
# request.params is hacked to return {} on PUT requests
|
|
25
|
+
request.params
|
|
23
26
|
request.body.read.inspect
|
|
24
27
|
end
|
|
25
28
|
|
|
@@ -66,7 +69,7 @@ describe "Request" do
|
|
|
66
69
|
end
|
|
67
70
|
|
|
68
71
|
describe "PUT" do
|
|
69
|
-
it "put a
|
|
72
|
+
it "put a resource" do
|
|
70
73
|
image = 'favicon.ico'
|
|
71
74
|
image_path = File.join('spec', 'ramaze', 'public', image)
|
|
72
75
|
address = "/put_inspect/#{image}"
|
|
@@ -79,7 +82,7 @@ describe "Request" do
|
|
|
79
82
|
end
|
|
80
83
|
|
|
81
84
|
describe "DELETE" do
|
|
82
|
-
it "delete a
|
|
85
|
+
it "delete a resource" do
|
|
83
86
|
delete('/is_delete').body.should == 'true'
|
|
84
87
|
end
|
|
85
88
|
end
|
data/spec/ramaze/session.rb
CHANGED
|
@@ -17,6 +17,14 @@ class TCSessionController < Ramaze::Controller
|
|
|
17
17
|
session.merge! request.params
|
|
18
18
|
index
|
|
19
19
|
end
|
|
20
|
+
|
|
21
|
+
def test_set(n)
|
|
22
|
+
session[:n] = n
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_result
|
|
26
|
+
session[:n]
|
|
27
|
+
end
|
|
20
28
|
end
|
|
21
29
|
|
|
22
30
|
describe "Session" do
|
|
@@ -67,6 +75,17 @@ describe "Session" do
|
|
|
67
75
|
it "snooping a bit around" do
|
|
68
76
|
b.cookie.split('=').size.should == 3
|
|
69
77
|
end
|
|
78
|
+
|
|
79
|
+
it 'should not hit IP_COUNT_LIMIT for the same session/ip' do
|
|
80
|
+
class Ramaze::Session
|
|
81
|
+
remove_const :IP_COUNT_LIMIT
|
|
82
|
+
const_set(:IP_COUNT_LIMIT, 2)
|
|
83
|
+
end
|
|
84
|
+
(0..Ramaze::Session::IP_COUNT_LIMIT * 2).each do |n|
|
|
85
|
+
b.get("/test_set/#{n}")
|
|
86
|
+
b.get("/test_result").should == n.to_s
|
|
87
|
+
end
|
|
88
|
+
end
|
|
70
89
|
end
|
|
71
90
|
end
|
|
72
91
|
end
|