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