summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/basic_spec.rb61
-rw-r--r--spec/spec_helper.rb38
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
+#