# require "#{File.expand_path(File.dirname(__FILE__))}/helper" # # describe "Render" do # inject :conveyors => :conveyors # # before :all do # class ::AnItem # inherit Crystal::Render # # def show # {'result' => 'value'} # end # # def partial # end # # def format; end # end # # class ::ALayout # inherit Crystal::Render # layout '/ALayout/layout' # # def show # end # end # # @dir = "#{File.expand_path(File.dirname(__FILE__))}/integration_spec" # # $LOAD_PATH << @dir # # Crystal.run nil, {:before => :environment}, :render_spec do # crystal.config.environment = :test # crystal.config.test_error_template = crystal.config.development_error_template # end # # crystal[:config].environment = :test # crystal[:environment] = Crystal::Environment.new # crystal[:environment].load :render_spec # # conveyors.web << Crystal::Processors::RenderObject.new(:remote_object, :method_name, :remote_result) # end # # after :all do # $LOAD_PATH.delete @dir # crystal.clear # [:AnItem, :ALayout].each{|c| Object.send :remove_const, c if Object.const_defined? c} # end # # # it "should correctly display error messages (with correct format)" do # error = StandardError.new('some error') # # workspace = wcall :error => error, :params => {:format => :html} # workspace.response.body.should =~ /html.+some error/m # workspace.response.content_type.should == Mime.html # # workspace = wcall :error => error, :params => {:format => :js} # workspace.response.body.should =~ /some error/ # workspace.response.content_type.should == Mime.js # # workspace = wcall :error => error, :params => {:format => :non_existing_mime} # workspace.response.body.should =~ /some error/ # workspace.response.content_type.should == Mime.text # end # # it "layout" do # workspace = wcall :remote_object => ALayout.new, :method_name => :show, :params => {:format => :html} # workspace.response.body.should == "Layout html, content" # workspace.response.content_type.should == Mime.html # # workspace = wcall :remote_object => ALayout.new, :method_name => :show, :params => {:format => :js} # workspace.response.body.should == "Layout js, content" # workspace.response.content_type.should == Mime.js # end # # it "context, controller_name, method_name, object" do # controller = AnItem.new # workspace = wcall( # :remote_object => controller, # :method_name => :show, # :remote_result => controller.show, # :params => {:class_name => 'AnItem', :method_name => 'show'} # ) # # workspace.response.body.should == %{\ # Controller: AnItem # Class Name: AnItem # Mehtod Name: show # Result object: value} # workspace.response.content_type.should == Mime.html # end # # it "format" do # workspace = wcall :remote_object => AnItem.new, :method_name => :format, :params => {:format => :html} # workspace.response.body.should == "html format" # workspace.response.content_type.should == Mime.html # # workspace = wcall :remote_object => AnItem.new, :method_name => :format, :params => {:format => :js} # workspace.response.body.should == "js format" # workspace.response.content_type.should == Mime.js # end # # it "should not allow to render partials as actions" do # workspace = wcall :remote_object => AnItem.new, :method_name => :partial # workspace.error.message.should =~ /No template/ # end # # it "should be able override layout inside of template" # end