diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-12-28 14:36:24 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-12-28 14:36:24 +0100 |
commit | 431f39fc2527c5e76895c9ee649216bacf8007cb (patch) | |
tree | 800f4986a6c894e3accd35a79e4bfba0e70dc212 | |
parent | 7aad38c5a5631c1f9b9cdd579788916da14be9c8 (diff) | |
download | zorglub-431f39fc2527c5e76895c9ee649216bacf8007cb.zip zorglub-431f39fc2527c5e76895c9ee649216bacf8007cb.tar.gz |
add basic specs
-rw-r--r-- | spec/basic_spec.rb | 61 | ||||
-rw-r--r-- | spec/spec_helper.rb | 38 |
2 files changed, 99 insertions, 0 deletions
diff --git a/spec/basic_spec.rb b/spec/basic_spec.rb new file mode 100644 index 0000000..e78d166 --- /dev/null +++ b/spec/basic_spec.rb @@ -0,0 +1,61 @@ +# -*- 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("/spec1").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 == "/spec1" + 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["/spec1"].should be Node1 + end + # + end + # + describe Zorglub::Node do + # + it "engine should return Node's engine" do + Node1.engine.should == Zorglub::Config.engine + Node2.engine.should == "spec-engine-2" + end + # + it "layout should return Node's layout" do + Node1.layout.should == Zorglub::Config.layout + Node2.layout.should == "spec-layout-2" + end + # + it "r should build a well formed path" do + Node1.r(1,'arg2',"some").should == "/spec1/1/arg2/some" + end + # + end + # +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..1376a4d --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,38 @@ +#! /usr/bin/env ruby +# +require 'zorglub' +# +ENGINE_PROC = Proc.new { |path,obj| "path=>#{path} : obj=>#{obj}" } +Zorglub::Config.register_engine 'spec-engine-1', 'spec', ENGINE_PROC +Zorglub::Config.register_engine 'spec-engine-2', 'spec', ENGINE_PROC +# +Zorglub::Config.engine = 'haml' +# +class SpecNode < Zorglub::Node + @count=0 + class << self + attr_accessor :count + end + before_all do |node| + Zorglub::Node.count +=1 + end +end +# +class Temp < SpecNode +end +# +class Node1 < SpecNode +end +# +class Node2 < SpecNode + layout 'spec-layout-2' + engine 'spec-engine-2' +end +# +APP = Zorglub::App.new do + map '/spec1', Node1 +end +class Node2 + map APP, '/spec2' +end +# |