summaryrefslogtreecommitdiff
path: root/spec/helpers/tab_helper_spec.rb
blob: fa8a3f554f75c892009d621a924eab1343415812 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
require 'spec_helper'

describe TabHelper do
  include ApplicationHelper

  describe 'nav_link' do
    before do
      controller.stub(:controller_name).and_return('foo')
      allow(self).to receive(:action_name).and_return('foo')
    end

    it "captures block output" do
      nav_link { "Testing Blocks" }.should match(/Testing Blocks/)
    end

    it "performs checks on the current controller" do
      nav_link(controller: :foo).should match(/<li class="active">/)
      nav_link(controller: :bar).should_not match(/active/)
      nav_link(controller: [:foo, :bar]).should match(/active/)
    end

    it "performs checks on the current action" do
      nav_link(action: :foo).should match(/<li class="active">/)
      nav_link(action: :bar).should_not match(/active/)
      nav_link(action: [:foo, :bar]).should match(/active/)
    end

    it "performs checks on both controller and action when both are present" do
      nav_link(controller: :bar, action: :foo).should_not match(/active/)
      nav_link(controller: :foo, action: :bar).should_not match(/active/)
      nav_link(controller: :foo, action: :foo).should match(/active/)
    end

    it "accepts a path shorthand" do
      nav_link(path: 'foo#bar').should_not match(/active/)
      nav_link(path: 'foo#foo').should match(/active/)
    end

    it "passes extra html options to the list element" do
      nav_link(action: :foo, html_options: {class: 'home'}).should match(/<li class="home active">/)
      nav_link(html_options: {class: 'active'}).should match(/<li class="active">/)
    end
  end
end