require File.dirname(__FILE__) + "/../../spec_helper"
describe Admin::NodeHelper do
before :each do
@controller = mock("controller")
@cookies = {}
stub!(:cookies).and_return(@cookies)
stub!(:homepage).and_return(nil)
@page = mock_model(Page)
end
it "should render a sitemap node" do
should_receive(:render).with(:partial => "node", :locals => {:level => 0, :simple => false, :page => @page})
render_node(@page)
@current_node.should == @page
end
it "should show all nodes when on the remove action" do
@controller.should_receive(:action_name).and_return("remove")
show_all?.should be_true
end
it "should not show all nodes automatically when not in the remove action" do
@controller.should_receive(:action_name).and_return("index")
show_all?.should be_false
end
it "should determine which rows to expand" do
@cookies[:expanded_rows] = "1,2,3"
expanded_rows.should == [1,2,3]
end
it "should determine whether the current node should be expanded" do
should_receive(:show_all?).and_return(true)
expanded.should be_true
end
it "should determine the left padding for the current level" do
padding_left(0).should == 4
padding_left(1).should == 26
padding_left(2).should == 48
end
it "should determine the class of a parent node" do
@current_node = @page
child = mock("child")
@page.should_receive(:children).and_return([child])
should_receive(:expanded).and_return(true)
children_class.should == " children-visible"
end
it "should display an icon for the current node" do
@current_node = @page
@page.should_receive(:virtual?).and_return(false)
should_receive(:image).with("page", :class => "icon", :alt => 'page-icon', :title => '')
icon
end
it "should display the virtual icon if the current node is virtual" do
@current_node = @page
@page.should_receive(:virtual?).and_return(true)
should_receive(:image).with("virtual-page", :class => "icon", :alt => 'page-icon', :title => '')
icon
end
it "should render the title of the current node" do
@current_node = @page
@page.should_receive(:title).and_return("Title")
node_title.should == %{Title}
end
it "should render the page type if it's not Page" do
@current_node = @page
@class = mock("Class")
@page.should_receive(:class).and_return(@class)
@class.should_receive(:display_name).and_return("Special")
page_type.should == %{(Special)}
end
it "should not render the page type if it's Page" do
@current_node = @page
@page.should_receive(:class).and_return(Page)
page_type.should == %{}
end
it "should render the busy spinner" do
@current_node = @page
@page.should_receive(:id).and_return(1)
should_receive(:image).with('spinner.gif',
:class => 'busy', :id => "busy-1",
:alt => "", :title => "",
:style => 'display: none;')
spinner
end
end