diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/app_spec.rb | 24 | ||||
-rw-r--r-- | spec/node_spec.rb | 94 | ||||
-rw-r--r-- | spec/spec_helper.rb | 36 |
3 files changed, 76 insertions, 78 deletions
diff --git a/spec/app_spec.rb b/spec/app_spec.rb index 0e8375b..fb2adbd 100644 --- a/spec/app_spec.rb +++ b/spec/app_spec.rb @@ -1,43 +1,43 @@ # -*- coding: UTF-8 -*- -# + require 'spec_helper' -# + describe Zorglub do - # + describe Zorglub::App do - # + it "map should add a mapped node" do APP.at("/temp").should be_nil APP.map "/temp", Temp APP.at("/temp").should be Temp end - # + it "delete should delete a mapped node" do APP.at("/temp").should be Temp APP.delete "/temp" APP.at("/temp").should be_nil end - # + it "at should return mapped node" do APP.at("/node1").should be Node1 end - # + it "at should return nil if no Node mapped" do APP.at("/none").should be_nil end - # + it "to should return path to node" do APP.to(Node1).should == "/node1" end - # + it "to should return nil if not an existing Node" do APP.to(nil).should be_nil end - # + it "to_hash should return a correct hash" do APP.to_hash["/node1"].should be Node1 end - # + end - # + end diff --git a/spec/node_spec.rb b/spec/node_spec.rb index 67bd70f..ec05136 100644 --- a/spec/node_spec.rb +++ b/spec/node_spec.rb @@ -1,85 +1,85 @@ # -*- coding: UTF-8 -*- -# + require 'spec_helper' -# + def clean_static_path static_base_path = Node0.app.static_base_path Dir.glob( File.join(static_base_path,'**','*') ).each do |f| File.unlink f if File.file? f end Dir.glob( File.join(static_base_path,'*') ).each do |d| Dir.rmdir d end Dir.rmdir static_base_path if File.directory? static_base_path end -# + describe Zorglub do - # + describe Zorglub::Node do - # + before(:all) do clean_static_path end - # + after(:all) do clean_static_path end - # + it "engine should return default Node's engine" do Node0.engine.should == Node0.app.opt(:engine) end - # + it "layout should return default Node's layout" do Node0.layout.should == Node0.app.opt(:layout) end - # + it "engine should return class defined Node's engine" do Node1.engine.should == "engine-1" Node3.engine.should == "engine-2" end - # + it "layout should return class defined Node's layout" do Node1.layout.should == "layout-1" Node3.layout.should == "layout-2" end - # + it "engine should return engine inherited from Node2" do Node2.engine.should == "engine-1" end - # + it "layout should return layout inherited from Node2" do Node2.layout.should == "layout-1" end - # + it "r should build a well formed path" do Node1.r(1,'arg2',"some").should == "/node1/1/arg2/some" end - # + it "instance level map should work" do r = Node0.my_call '/with_2args/1/2' h = YAML.load r.body[0] h[:map].should == '/node0' end - # + it "should return err404 response when no method found" do Node0.respond_to?('noresponse').should be_falsey r = Node0.my_call '/noresponse' r.status.should == 404 end - # + it "simple method should respond" do r = Node0.my_call '/hello' r.status.should == 200 r.body[0].should == 'world' end - # + it "instance level args should work" do r = Node0.my_call '/with_2args/1/2' h = YAML.load r.body[0] h[:args][0].should == '1' h[:args][1].should == '2' end - # + it "should raise error when too much arguments" do lambda{ r = Node0.my_call '/with_2args/1/2/3' }.should raise_error ArgumentError end - # + it "layout proc, method level layout and engine definitions should work" do r = Node0.my_call '/index' r.status.should == 200 @@ -90,7 +90,7 @@ describe Zorglub do h[:layout].should == ly h[:view].should == vu end - # + it "layout proc, method level layout and engine definitions should work" do r = Node1.my_call '/index' r.status.should == 200 @@ -101,7 +101,7 @@ describe Zorglub do h[:layout].should == ly h[:view].should == vu end - # + it "before_all hook should work" do Node3.before = 0 Node3.after = 0 @@ -113,7 +113,7 @@ describe Zorglub do Node3.my_call '/index' Node3.before.should == 3 end - # + it "after_all hook should work" do Node3.before = 0 Node3.after = 0 @@ -125,7 +125,7 @@ describe Zorglub do Node3.my_call '/index' Node3.after.should == 3 end - # + it "inherited before_all hook should work" do Node3.before = 0 Node3.after = 0 @@ -137,7 +137,7 @@ describe Zorglub do Node8.my_call '/index' Node3.before.should == 3 end - # + it "inherited after_all hook should work" do Node3.before = 0 Node3.after = 0 @@ -149,36 +149,36 @@ describe Zorglub do Node8.my_call '/index' Node3.after.should == 3 end - # + it "should find view and layout and render them" do r = Node0.my_call '/do_render' r.status.should == 200 r.body[0].should == "layout_start view_content layout_end" end - # + it "default mime-type should be text/html" do r = Node0.my_call '/index' r.header['Content-type'].should == 'text/html' end - # + it "should be able to override mime-type" do r = Node0.my_call '/do_render' r.header['Content-type'].should == 'text/view' end - # + it "should be able to override through rack response mime-type" do r = Node0.my_call '/do_content_type' r.header['Content-type'].should == 'text/mine' end - # + it "partial should render correctly" do Node0.partial({},:do_partial, 1, 2).should == 'partial_content' end - # + it "method level view should work" do Node0.partial({},:other_view).should == 'partial_content' end - # + it "partial with hooks should be default" do Node3.before = 0 Node3.after = 0 @@ -186,7 +186,7 @@ describe Zorglub do Node3.before.should == 1 Node3.after.should == 1 end - # + it "partial without hooks should work" do Node3.before = 0 Node3.after = 0 @@ -194,7 +194,7 @@ describe Zorglub do Node3.before.should == 0 Node3.after.should == 0 end - # + it "static pages should be generated" do r = Node6.my_call '/do_static' r.body[0].should == 'VAL 1' @@ -217,31 +217,31 @@ describe Zorglub do r.body[0].should == 'VAL 6' r.header['Content-type'].should == 'text/static' end - # + it "redirect should work" do r = Node0.my_call '/do_redirect' r.status.should == 302 r.header['location'].should == Node0.r(:do_partial,1,2,3) end - # + it "no_layout! should be inherited" do Node5.layout.should be_nil end - # + it "cli_vals should be inherited and extended" do r = Node5.my_call '/index' vars = YAML.load r.body[0] vars.should == ['js0','js1','js3','jsx','css0','css1','css2'] vars[7].should be_nil end - # + it "cli_vals should be extended at method level" do r = Node4.my_call '/more' vars = YAML.load r.body[0] vars.should == ['js0','js1','js2'] vars[3].should be_nil end - # + it "cli_vals should be untouched" do r = Node4.my_call '/index' vars = YAML.load r.body[0] @@ -252,7 +252,7 @@ describe Zorglub do vars.should == ['js0','js1','js3','jsx','css0','css1','css2'] vars[7].should be_nil end - # + it "ext definition and file engine should work" do r = Node0.my_call '/xml_file' r.body[0].should == "<xml>file<\/xml>\n" @@ -261,12 +261,12 @@ describe Zorglub do r.body[0].should == "plain file\n" r.header['Content-type'].should == 'text/plain' end - # + it "no view no layout should work as well" do r = Node0.my_call '/no_view_no_layout' r.body[0].should == "hello world" end - # + it "haml engine should work" do Node0.app.opt! :engines_cache_enabled, false r = Node0.my_call '/engines/haml' @@ -275,7 +275,7 @@ describe Zorglub do r = Node0.my_call '/engines/haml' r.body[0].should == "<h1>Hello world</h1>\n" end - # + it "sass engine should work" do Node0.app.opt! :engines_cache_enabled, true r = Node0.my_call '/engines/sass' @@ -284,24 +284,24 @@ describe Zorglub do r = Node0.my_call '/engines/sass' r.body[0].should == "vbar{width:80%;height:23px}vbar ul{list-style-type:none}vbar li{float:left}vbar li a{font-weight:bold}\n" end - # + it "view_base_path! should work" do r = Node7.my_call '/view_path' h = YAML.load r.body[0] h[:view].should == File.join(Node7.app.opt(:root), 'alt','do_render') end - # + it "layout_base_path! should work" do r = Node7.my_call '/view_path' h = YAML.load r.body[0] h[:layout].should == File.join(Node7.app.opt(:root), 'alt','layout','default') end - # + it "debug out should work" do APP.opt! :debug, true Node0.my_call '/hello' end - # + end - # + end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index eea6bfe..fd96d17 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,8 @@ #! /usr/bin/env ruby -# + begin require 'coveralls' Coveralls.wear! - # rescue LoadError end begin @@ -13,14 +12,14 @@ begin end rescue LoadError end -# + require 'yaml' -# + require 'zorglub' require 'zorglub/engines/file' require 'zorglub/engines/haml' require 'zorglub/engines/sass' -# + HASH_PROC = Proc.new { |path,obj| {:path=>path,:layout=>obj.layout,:view=>obj.view,:args=>obj.args,:map=>obj.map}.to_yaml } STATIC_PROC = Proc.new { |path,obj| ["VAL #{obj.value}",'text/static'] } RENDER_PROC = Proc.new { |path,obj| @@ -36,16 +35,16 @@ RENDER_PROC = Proc.new { |path,obj| end } APP_ROOT = File.join Dir.pwd, 'spec', 'data' -# + class Zorglub::Node def self.my_call uri call( {'PATH_INFO'=>uri} ) end end -# + class Temp < Zorglub::Node end -# + class Node0 < Zorglub::Node # default def index @@ -101,7 +100,7 @@ class Node0 < Zorglub::Node end end end -# + class Node1 < Zorglub::Node layout! 'layout-1' engine! 'engine-1' @@ -110,11 +109,11 @@ class Node1 < Zorglub::Node engine! 'engine-2' end end -# + class Node2 < Node1 # inherited from Node1 end -# + class Node3 < Zorglub::Node @before=0 @after=0 @@ -138,10 +137,10 @@ class Node3 < Zorglub::Node engine! 'real' end end -# + class Node8 < Node3 end -# + class Node4 < Zorglub::Node no_layout! cli_val :js,'js0' @@ -154,7 +153,7 @@ class Node4 < Zorglub::Node cli_val(:js).to_yaml end end -# + class Node5 < Node4 cli_val :js, 'js3' cli_val :css, 'css0', 'css1' @@ -166,7 +165,7 @@ class Node5 < Node4 js.concat(css).to_yaml end end -# + class Node6 < Zorglub::Node @static_cpt=0 class << self @@ -188,7 +187,7 @@ class Node6 < Zorglub::Node @value = Node6.static_cpt end end -# + class Node7 < Zorglub::Node layout_base_path! File.join APP_ROOT, 'alt','layout' view_base_path! File.join APP_ROOT, 'alt' @@ -196,7 +195,7 @@ class Node7 < Zorglub::Node view! 'do_render' end end -# + APP = Zorglub::App.new do register_engine! :file, nil, Zorglub::Engines::File.method(:proc) register_engine! :haml, 'haml', Zorglub::Engines::Haml.method(:proc) @@ -217,8 +216,7 @@ APP = Zorglub::App.new do map '/node7', Node7 map '/node8', Node8 end -# + class Node2 map APP, '/node2' end -# |