spec/lib/simple_navigation/configuration_spec.rb in simple-navigation-1.4.2 vs spec/lib/simple_navigation/configuration_spec.rb in simple-navigation-2.0.0

- old
+ new

@@ -16,10 +16,11 @@ describe 'self.eval_config' do before(:each) do @context = mock(:context) @context.stub!(:instance_eval) + SimpleNavigation::Configuration.stub!(:context_for_eval => @context) @config_files = {:default => 'default', :my_context => 'my_context'} SimpleNavigation.stub!(:config_files).and_return(@config_files) end context "with default navigation context" do it "should instance_eval the default config_file-string inside the context" do @@ -37,12 +38,59 @@ @controller = stub(:controller) SimpleNavigation::Configuration.should_receive(:extract_controller_from).with(@context).and_return(@controller) SimpleNavigation.should_receive(:controller=).with(@controller) SimpleNavigation::Configuration.eval_config(@context) end + it "should set the template" do + @template = stub(:template) + @controller = stub(:controller, :instance_variable_get => @template) + SimpleNavigation.stub!(:controller => @controller) + SimpleNavigation.should_receive(:template=).with(@template) + SimpleNavigation::Configuration.eval_config(@context) + end end + describe 'context_for_eval' do + context 'controller is present' do + before(:each) do + @controller = stub(:controller) + SimpleNavigation.stub!(:controller => @controller) + end + context 'template is present' do + before(:each) do + @template = stub(:template) + SimpleNavigation.stub!(:template => @template) + end + it {SimpleNavigation::Configuration.context_for_eval.should == @template} + end + context 'template is not present' do + before(:each) do + SimpleNavigation.stub!(:template => nil) + end + it {SimpleNavigation::Configuration.context_for_eval.should == @controller} + end + end + context 'controller is not present' do + before(:each) do + SimpleNavigation.stub!(:controller => nil) + end + context 'template is present' do + before(:each) do + @template = stub(:template) + SimpleNavigation.stub!(:template => @template) + end + it {SimpleNavigation::Configuration.context_for_eval.should == @template} + end + context 'template is not present' do + before(:each) do + SimpleNavigation.stub!(:template => nil) + end + it {lambda {SimpleNavigation::Configuration.context_for_eval}.should raise_error} + end + end + end + describe 'self.extract_controller_from' do before(:each) do @nav_context = stub(:nav_context) end @@ -76,10 +124,13 @@ @config.render_all_levels.should be_false end it "should set autogenerate_item_ids to true as default" do @config.autogenerate_item_ids.should be_true end + it "should set auto_highlight to true as default" do + @config.auto_highlight.should be_true + end end describe 'items' do before(:each) do @container = stub(:items_container) SimpleNavigation::ItemContainer.stub!(:new).and_return(@container) @@ -93,9 +144,19 @@ @config.items {} @config.primary_navigation.should == @container end end + describe 'loaded?' do + it "should return true if primary_nav is set" do + @config.instance_variable_set(:@primary_navigation, :bla) + @config.should be_loaded + end + it "should return false if no primary_nav is set" do + @config.instance_variable_set(:@primary_navigation, nil) + @config.should_not be_loaded + end + end end