breadcrumbs_plugin_helper_test.rb
3.29 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
require 'test_helper'
class BreadcrumbsPluginHelperTest < ActionView::TestCase
include BreadcrumbsPluginHelper
def setup
@block = BreadcrumbsPlugin::ContentBreadcrumbsBlock.new
@profile = fast_create(Community)
@folder = fast_create(Folder, :profile_id => @profile.id)
@article = fast_create(Folder, :profile_id => @profile.id, :parent_id => @folder.id)
@params = {}
end
attr_reader :params
should 'return path of links to reach a page' do
links = [{:name => @folder.name, :url => @folder.url}, {:name => @article.name, :url => @article.url}]
assert_equal links, page_trail(@article)
end
should 'return path of links when current page is at cms controller' do
params = {:controller => 'cms', :action => 'edit', :id => @article.id}
links = [{:name => @folder.name, :url => @folder.url}, {:name => @article.name, :url => @article.url}, {:url=>params, :name=>"Edit"}]
assert_equal links, trail(@block, nil, nil, params)
end
should 'not return cms action link when show_cms_action is false' do
params = {:controller => 'cms', :action => 'edit', :id => @article.id}
links = [{:name => @folder.name, :url => @folder.url}, {:name => @article.name, :url => @article.url}]
@block.show_cms_action = false
assert_equal links, trail(@block, nil, nil, params)
end
should 'include profile page link on path of links to reach a profile controller page' do
params = {:controller => 'profile', :action => 'members', :profile => @profile.identifier}
links = [{:name => 'Profile', :url => {:controller => 'profile', :action => 'index', :profile => @profile.identifier}}, {:name => 'Members', :url => {:controller=>'profile', :action=>'members', :profile=> @profile.identifier}}]
assert_equal links, trail(@block, nil, nil, params)
end
should 'include only the profile page link on path links when profile action is index' do
params = {:controller => 'profile', :action => 'index', :profile => @profile.identifier}
links = [{:name => 'Profile', :url => {:controller => 'profile', :action => 'index', :profile => @profile.identifier}}]
assert_equal links, trail(@block, nil, nil, params)
end
should 'profile page be the ancestor page of event profile page calendar' do
params = {:controller => 'profile', :action => 'events', :profile => @profile.identifier}
links = [{:name => 'Profile', :url => {:controller => 'profile', :action => 'index', :profile => @profile.identifier}}, {:name => 'Events', :url => {:controller=>'profile', :action=>'events', :profile=> @profile.identifier}}]
assert_equal links, trail(@block, nil, nil, params)
end
should 'include profile link on path of links to reach a page' do
links = [{:name => @profile.name, :url => @profile.url}, {:name => @folder.name, :url => @folder.url}, {:name => @article.name, :url => @article.url}]
assert_equal links, trail(@block, @article, @profile)
end
should 'not include profile link on path of links when show_profile is false' do
links = [{:name => @folder.name, :url => @folder.url}, {:name => @article.name, :url => @article.url}]
@block.show_profile = false
assert_equal links, trail(@block, @article, @profile)
end
should 'not include profile link on path of links when trail is empty' do
assert_equal [], trail(@block, nil, @profile)
end
end