summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-01-04 02:09:42 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2012-01-04 02:09:42 +0100
commit2109f1a718094726f61eab595d3b6a8bedcc59e1 (patch)
tree6c17074173aa778d1c42a1d83facac3b30b2e61e
parent18777bb83937837f673f3876c96b7fb8ce59835e (diff)
downloadzorglub-2109f1a718094726f61eab595d3b6a8bedcc59e1.zip
zorglub-2109f1a718094726f61eab595d3b6a8bedcc59e1.tar.gz
spec : add defs spec
-rw-r--r--spec/node_spec.rb26
-rw-r--r--spec/spec_helper.rb23
2 files changed, 49 insertions, 0 deletions
diff --git a/spec/node_spec.rb b/spec/node_spec.rb
index 9aed852..4b4fbed 100644
--- a/spec/node_spec.rb
+++ b/spec/node_spec.rb
@@ -126,6 +126,32 @@ describe Zorglub do
r.header['location'].should == Node0.r(:do_partial,1,2,3)
end
#
+ it "defs should be inherited" do
+ r = Node5.my_call '/index'
+ ar = YAML.load r.body[0]
+ ar[0].should == 'js0'
+ ar[1].should == 'js1'
+ ar[2].should == 'js3'
+ ar[3].should == 'jsx'
+ ar[4].should be_nil
+ end
+ #
+ it "defs should be method scope modified" do
+ r = Node4.my_call '/more'
+ ar = YAML.load r.body[0]
+ ar[0].should == 'js0'
+ ar[1].should == 'js1'
+ ar[2].should == 'js2'
+ ar[3].should be_nil
+ end
+ #
+ it "defs should not have been modified by other method" do
+ r = Node4.my_call '/index'
+ ar = YAML.load r.body[0]
+ ar[0].should == 'js0'
+ ar[1].should == 'js1'
+ ar[2].should be_nil
+ end
end
#
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 5297cb5..84aebdd 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -11,6 +11,7 @@ end
require 'yaml'
#
require 'zorglub'
+require 'zorglub/defs'
#
HASH_PROC = Proc.new { |path,obj| {:path=>path,:layout=>obj.layout,:view=>obj.view,:args=>obj.args}.to_yaml }
RENDER_PROC = Proc.new { |path,obj|
@@ -99,10 +100,32 @@ class Node3 < Zorglub::Node
end
end
#
+class Node4 < Zorglub::Node
+ defs :js,'js0','js1'
+ def index
+ no_layout
+ defs(:js).to_yaml
+ end
+ def more
+ no_layout
+ defs(:js,'js2').to_yaml
+ end
+end
+#
+class Node5 < Node4
+ defs :js, 'js3'
+ def index
+ no_layout
+ defs(:js,'jsx').to_yaml
+ end
+end
+#
APP = Zorglub::App.new do
map '/node0', Node0
map '/node1', Node1
map '/node3', Node3
+ map '/node4', Node4
+ map '/node5', Node5
end
class Node2
map APP, '/node2'