menu_maker 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/menu_maker/menu.rb +43 -18
- data/lib/menu_maker/version.rb +1 -1
- data/test/dummy/log/test.log +3219 -0
- data/test/menu_item_test.rb +83 -0
- data/test/menu_maker_test.rb +3 -3
- data/test/menu_renderer_test.rb +5 -5
- metadata +4 -2
@@ -0,0 +1,83 @@
|
|
1
|
+
module MenuMaker
|
2
|
+
class MenuItemTest < ActionView::TestCase
|
3
|
+
test 'hash options can be accessed as methods on MenuItem' do
|
4
|
+
item = Menu::MenuItem.new 'My title', 'my/path', from_hash: 'option'
|
5
|
+
assert_equal 'option', item.from_hash
|
6
|
+
end
|
7
|
+
|
8
|
+
test 'path returns the first path from the menu item' do
|
9
|
+
item = Menu::MenuItem.new 'My title', 'my/path'
|
10
|
+
assert_equal 'my/path', item.path
|
11
|
+
end
|
12
|
+
|
13
|
+
test 'submenu_paths returns submenu paths recursively' do
|
14
|
+
item = Menu::MenuItem.new 'Level 1', 'level/1'
|
15
|
+
|
16
|
+
menu2 = Menu.new(->(){})
|
17
|
+
menu2.add 'Level 2', 'level/2' do |menu3|
|
18
|
+
menu3.add 'Level 3', 'level/3'
|
19
|
+
menu3.add 'Level 4', 'level/4' do |menu4|
|
20
|
+
menu4.add 'Level 6', 'level/6'
|
21
|
+
end
|
22
|
+
menu3.add 'Level 5', 'level/5'
|
23
|
+
end
|
24
|
+
menu2.add 'Level 2/1', 'level/2/1'
|
25
|
+
menu2.add 'Level 2/2', 'level/2/2'
|
26
|
+
|
27
|
+
item.submenu = menu2
|
28
|
+
|
29
|
+
expected = %w[level/2 level/2/1 level/2/2 level/3 level/4 level/5 level/6]
|
30
|
+
|
31
|
+
assert_equal expected, item.submenu_paths.sort
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'all_paths returns submenu paths + current menu path' do
|
35
|
+
item = Menu::MenuItem.new 'Level 1', 'level/1'
|
36
|
+
|
37
|
+
menu2 = Menu.new(->(){})
|
38
|
+
menu2.add 'Level 2', 'level/2' do |menu3|
|
39
|
+
menu3.add 'Level 3', 'level/3'
|
40
|
+
menu3.add 'Level 4', 'level/4' do |menu4|
|
41
|
+
menu4.add 'Level 6', 'level/6'
|
42
|
+
end
|
43
|
+
menu3.add 'Level 5', 'level/5'
|
44
|
+
end
|
45
|
+
|
46
|
+
item.submenu = menu2
|
47
|
+
|
48
|
+
expected = %w[level/1 level/2 level/3 level/4 level/5 level/6]
|
49
|
+
|
50
|
+
assert_equal expected, item.all_paths.sort
|
51
|
+
end
|
52
|
+
|
53
|
+
test 'has_path? also checks for submenus' do
|
54
|
+
item = Menu::MenuItem.new 'Level 1', 'level/1'
|
55
|
+
|
56
|
+
menu2 = Menu.new(->(){})
|
57
|
+
menu2.add 'Level 2', 'level/2' do |menu3|
|
58
|
+
menu3.add 'Level 3', 'level/3'
|
59
|
+
menu3.add 'Level 4', 'level/4' do |menu4|
|
60
|
+
menu4.add 'Level 6', 'level/6'
|
61
|
+
end
|
62
|
+
menu3.add 'Level 5', 'level/5'
|
63
|
+
end
|
64
|
+
|
65
|
+
item.submenu = menu2
|
66
|
+
|
67
|
+
assert item.has_path?('level/4')
|
68
|
+
assert item.has_path?('level/1')
|
69
|
+
refute item.has_path?('level/8')
|
70
|
+
end
|
71
|
+
|
72
|
+
test "has_submenu? when returns false" do
|
73
|
+
item = Menu::MenuItem.new 'Level 1', 'level/1'
|
74
|
+
refute item.has_submenu?
|
75
|
+
end
|
76
|
+
|
77
|
+
test "has_submenu? when returns true" do
|
78
|
+
item = Menu::MenuItem.new 'Level 1', 'level/1'
|
79
|
+
item.submenu = Menu.new(->(){})
|
80
|
+
assert item.has_submenu?
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/test/menu_maker_test.rb
CHANGED
@@ -12,7 +12,7 @@ module MenuMaker
|
|
12
12
|
suppliers_li_class: 'dropdown'
|
13
13
|
)
|
14
14
|
|
15
|
-
assert_equal example_menu('/cms/dashboard').render
|
15
|
+
assert_equal expected_output, example_menu('/cms/dashboard').render
|
16
16
|
end
|
17
17
|
|
18
18
|
test 'outputs the menu with the first li submenu item active' do
|
@@ -21,7 +21,7 @@ module MenuMaker
|
|
21
21
|
add_supplier_class: 'active'
|
22
22
|
)
|
23
23
|
|
24
|
-
assert_equal example_menu('/cms/suppliers/new').render
|
24
|
+
assert_equal expected_output, example_menu('/cms/suppliers/new').render
|
25
25
|
end
|
26
26
|
|
27
27
|
test 'outputs the menu with the second li submenu item selected' do
|
@@ -30,7 +30,7 @@ module MenuMaker
|
|
30
30
|
list_supplier_class: 'active'
|
31
31
|
)
|
32
32
|
|
33
|
-
assert_equal example_menu('/cms/suppliers').render
|
33
|
+
assert_equal expected_output, example_menu('/cms/suppliers').render
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/test/menu_renderer_test.rb
CHANGED
@@ -5,8 +5,8 @@ module MenuMaker
|
|
5
5
|
def proc_renderer
|
6
6
|
proc do |menu|
|
7
7
|
items = menu.inject('') do |html, item|
|
8
|
-
link =
|
9
|
-
html +
|
8
|
+
link = %{<a href="#{item.path}">#{item}</a>}
|
9
|
+
html + %{<li>#{link}#{item.render_submenu}</li>}
|
10
10
|
end
|
11
11
|
|
12
12
|
"<ul>#{items}</ul>"
|
@@ -31,8 +31,8 @@ module MenuMaker
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
submenu =
|
35
|
-
expected =
|
34
|
+
submenu = %{<ul><li><a href="/some/path/new">First sublink</a></li></ul>}
|
35
|
+
expected = %{<ul><li><a href="/some/path">First link</a>#{submenu}</li></ul>}
|
36
36
|
|
37
37
|
assert_equal expected, menu_maker.render
|
38
38
|
end
|
@@ -54,7 +54,7 @@ module MenuMaker
|
|
54
54
|
end
|
55
55
|
|
56
56
|
submenu = "<ul><li>Static</li></ul>"
|
57
|
-
expected =
|
57
|
+
expected = %{<ul><li><a href="/some/path">First link</a>#{submenu}</li></ul>}
|
58
58
|
|
59
59
|
assert_equal expected, menu_maker.render
|
60
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: menu_maker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thiago A. Silva
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- test/fixtures/menu.html
|
98
98
|
- test/helpers/menu_maker/menu_helper_test.rb
|
99
99
|
- test/integration_test_helper.rb
|
100
|
+
- test/menu_item_test.rb
|
100
101
|
- test/menu_maker_test.rb
|
101
102
|
- test/menu_renderer_test.rb
|
102
103
|
- test/test_helper.rb
|
@@ -163,6 +164,7 @@ test_files:
|
|
163
164
|
- test/fixtures/menu.html
|
164
165
|
- test/helpers/menu_maker/menu_helper_test.rb
|
165
166
|
- test/integration_test_helper.rb
|
167
|
+
- test/menu_item_test.rb
|
166
168
|
- test/menu_maker_test.rb
|
167
169
|
- test/menu_renderer_test.rb
|
168
170
|
- test/test_helper.rb
|