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