semantic_navigation 0.1.1 → 0.1.3

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.
Files changed (59) hide show
  1. data/.editorconfig +14 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +10 -2
  4. data/Appraisals +7 -0
  5. data/Gemfile +1 -1
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +31 -20
  8. data/Rakefile +2 -1
  9. data/TODO +14 -0
  10. data/gemfiles/3.2.gemfile +7 -0
  11. data/gemfiles/3.2.gemfile.lock +112 -0
  12. data/gemfiles/4.0.gemfile +7 -0
  13. data/gemfiles/4.0.gemfile.lock +107 -0
  14. data/lib/generators/semantic_navigation/breadcrumb_renderer/templates/breadcrumb_renderer.rb +5 -5
  15. data/lib/generators/semantic_navigation/list_renderer/list_renderer_generator.rb +0 -1
  16. data/lib/generators/semantic_navigation/list_renderer/templates/list_renderer.rb +4 -4
  17. data/lib/semantic_navigation.rb +30 -0
  18. data/lib/semantic_navigation/configuration.rb +8 -9
  19. data/lib/semantic_navigation/core.rb +8 -6
  20. data/lib/semantic_navigation/core/leaf.rb +2 -2
  21. data/lib/semantic_navigation/core/mix_in/name_methods.rb +24 -0
  22. data/lib/semantic_navigation/core/mix_in/url_methods.rb +25 -0
  23. data/lib/semantic_navigation/core/navigation.rb +8 -2
  24. data/lib/semantic_navigation/core/node.rb +2 -2
  25. data/lib/semantic_navigation/deprecations/renderers/acts_as_breadcrumb.rb +14 -0
  26. data/lib/semantic_navigation/deprecations/renderers/acts_as_list.rb +12 -0
  27. data/lib/semantic_navigation/deprecations/renderers/render_helpers.rb +14 -0
  28. data/lib/semantic_navigation/helper_methods.rb +8 -4
  29. data/lib/semantic_navigation/railtie.rb +9 -19
  30. data/lib/semantic_navigation/renderers.rb +15 -8
  31. data/lib/semantic_navigation/renderers/bread_crumb.rb +6 -6
  32. data/lib/semantic_navigation/renderers/list.rb +6 -6
  33. data/lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb +43 -0
  34. data/lib/semantic_navigation/renderers/mix_in/acts_as_list.rb +49 -0
  35. data/lib/semantic_navigation/renderers/mix_in/render_helpers.rb +110 -0
  36. data/lib/semantic_navigation/twitter_bootstrap/breadcrumb.rb +5 -5
  37. data/lib/semantic_navigation/twitter_bootstrap/list.rb +2 -2
  38. data/lib/semantic_navigation/twitter_bootstrap/tabs.rb +2 -2
  39. data/lib/semantic_navigation/version.rb +1 -1
  40. data/semantic_navigation.gemspec +3 -2
  41. data/spec/lib/semantic_navigation/configuration_spec.rb +29 -24
  42. data/spec/lib/semantic_navigation/core/leaf_spec.rb +121 -114
  43. data/spec/lib/semantic_navigation/core/navigation_spec.rb +81 -76
  44. data/spec/lib/semantic_navigation/core/node_spec.rb +52 -49
  45. data/spec/lib/semantic_navigation/helper_methods_spec.rb +47 -42
  46. data/spec/lib/semantic_navigation/renderers/bread_crumb_spec.rb +191 -187
  47. data/spec/lib/semantic_navigation/renderers/deprecations_spec.rb +67 -0
  48. data/spec/lib/semantic_navigation/renderers/list_spec.rb +260 -258
  49. data/spec/lib/semantic_navigation/twitter_bootstrap/breadcrumb_spec.rb +163 -159
  50. data/spec/lib/semantic_navigation/twitter_bootstrap/list_spec.rb +263 -262
  51. data/spec/lib/semantic_navigation/twitter_bootstrap/tabs_spec.rb +269 -266
  52. data/spec/spec_helper.rb +6 -0
  53. metadata +41 -13
  54. data/gemfiles/rails3 +0 -7
  55. data/lib/semantic_navigation/core/name_methods.rb +0 -24
  56. data/lib/semantic_navigation/core/url_methods.rb +0 -24
  57. data/lib/semantic_navigation/renderers/acts_as_breadcrumb.rb +0 -42
  58. data/lib/semantic_navigation/renderers/acts_as_list.rb +0 -48
  59. data/lib/semantic_navigation/renderers/render_helpers.rb +0 -109
@@ -1,23 +1,23 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SemanticNavigation::Core::Navigation do
4
-
4
+
5
5
  describe '#initialize' do
6
-
7
- it 'should create instance of navigation with level 0 and empty subitems' do
6
+
7
+ it 'creates instance of navigation with level 0 and empty subitems' do
8
8
  navigation = SemanticNavigation::Core::Navigation.new({})
9
9
  navigation.level.should == 0
10
10
  navigation.sub_elements.should be_empty
11
11
  end
12
12
 
13
- it 'should create instance and save sended options' do
13
+ it 'creates instance and save sended options' do
14
14
  navigation = SemanticNavigation::Core::Navigation.new :id => :some_id,
15
15
  :classes => [:one, :two]
16
16
  navigation.id.should == :some_id
17
17
  navigation.classes.should == [:one,:two]
18
18
  end
19
19
 
20
- it 'should create instance and save unintended properties' do
20
+ it 'creates instance and save unintended properties' do
21
21
  navigation = SemanticNavigation::Core::Navigation.new :some_attribute => :some_value
22
22
  navigation.instance_variable_get("@some_attribute").should == :some_value
23
23
  end
@@ -25,25 +25,25 @@ describe SemanticNavigation::Core::Navigation do
25
25
  end
26
26
 
27
27
  describe '#item' do
28
- before :each do
29
- @navigation = SemanticNavigation::Core::Navigation.new({})
30
- end
28
+ before :each do
29
+ @navigation = SemanticNavigation::Core::Navigation.new({})
30
+ end
31
31
 
32
- it "should receive item method and make the leaf" do
32
+ it "receives item method and make the leaf" do
33
33
  @navigation.item :some_id, 'some_url'
34
34
  @navigation.sub_elements.size.should == 1
35
35
  @navigation.sub_elements.first.is_a?(SemanticNavigation::Core::Leaf).should be_true
36
- end
36
+ end
37
37
 
38
- it "should receive item method with block and create node" do
38
+ it "receives item method with block and create node" do
39
39
  @navigation.item :node_id, 'node_url' do
40
- item :leaf_id, 'leaf_url'
40
+ item :leaf_id, 'leaf_url'
41
41
  end
42
42
  @navigation.sub_elements.size.should == 1
43
43
  @navigation.sub_elements.first.is_a?(SemanticNavigation::Core::Node).should be_true
44
- end
44
+ end
45
45
 
46
- it "should receive item method with array of urls and save them properly" do
46
+ it "receives item method with array of urls and save them properly" do
47
47
  @navigation.item :leaf_id, ['string/url',"controller#action",:symbolic_name,['array','like','url']]
48
48
  urls = @navigation.sub_elements.first.instance_variable_get("@url")
49
49
  urls.should == ['string/url',
@@ -52,18 +52,18 @@ describe SemanticNavigation::Core::Navigation do
52
52
  ['array','like','url']]
53
53
  end
54
54
 
55
- it "should receive item with Proc url and decode it to normal url (leaf)" do
55
+ it "receives item with Proc url and decode it to normal url (leaf)" do
56
56
  @navigation.item :leaf_id, proc{'some' + 'func'}
57
57
  @navigation.sub_elements.first.url.should == 'somefunc'
58
58
  end
59
59
 
60
- it 'should receive item with array of urls one of each is a Proc (leaf)' do
60
+ it 'receives item with array of urls one of each is a Proc (leaf)' do
61
61
  @navigation.item :leaf_id, ['string_url',proc{'some' + 'func'}]
62
62
  urls = @navigation.sub_elements.first.send :urls
63
63
  urls.should == ['string_url', 'somefunc']
64
64
  end
65
65
 
66
- it "should receive item with Proc url and decode it to normal url (node)" do
66
+ it "receives item with Proc url and decode it to normal url (node)" do
67
67
  @navigation.item :leaf_id, proc{'some' + 'func'} do
68
68
  item :first_value, '#'
69
69
  item :second_value, '#'
@@ -71,59 +71,59 @@ describe SemanticNavigation::Core::Navigation do
71
71
  @navigation.sub_elements.first.url.should == 'somefunc'
72
72
  end
73
73
 
74
- it 'should receive item with array of urls one of each is a Proc (node)' do
74
+ it 'receives item with array of urls one of each is a Proc (node)' do
75
75
  @navigation.item :leaf_id, ['string_url',proc{'some' + 'func'}] do
76
76
  item :first_value, '#'
77
77
  item :second_value, '#'
78
78
  end
79
79
  urls = @navigation.sub_elements.first.send :urls
80
80
  urls.should == ['string_url', 'somefunc']
81
- end
81
+ end
82
82
  end
83
83
 
84
84
  describe '#header' do
85
- before :each do
86
- @navigation = SemanticNavigation::Core::Navigation.new({})
87
- @navigation.header :some_id
88
- end
89
-
90
- it "should create item with nil url" do
91
- @navigation.sub_elements.size.should == 1
92
- @navigation.sub_elements.first.url.should be_nil
93
- end
85
+ before :each do
86
+ @navigation = SemanticNavigation::Core::Navigation.new({})
87
+ @navigation.header :some_id
88
+ end
89
+
90
+ it "creates item with nil url" do
91
+ @navigation.sub_elements.size.should == 1
92
+ @navigation.sub_elements.first.url.should be_nil
93
+ end
94
94
  end
95
95
 
96
96
  describe "#divider" do
97
- before :each do
98
- @navigation = SemanticNavigation::Core::Navigation.new({})
99
- end
97
+ before :each do
98
+ @navigation = SemanticNavigation::Core::Navigation.new({})
99
+ end
100
100
 
101
- it "should create divider item with nil url and name" do
101
+ it "creates divider item with nil url and name" do
102
102
  @navigation.divider
103
- @navigation.sub_elements.size.should == 1
104
- @navigation.sub_elements.first.url.should be_nil
105
- @navigation.sub_elements.first.name.should be_empty
106
- end
107
-
108
- it "should receive any length method containing char `_` and create divider" do
109
-
110
- (1..10).each do |c|
103
+ @navigation.sub_elements.size.should == 1
104
+ @navigation.sub_elements.first.url.should be_nil
105
+ @navigation.sub_elements.first.name.should be_empty
106
+ end
107
+
108
+ it "receives any length method containing char `_` and create divider" do
109
+
110
+ (1..10).each do |c|
111
111
  @navigation.send ('_'*c).to_sym
112
- end
113
- @navigation.sub_elements.size.should == 10
114
- @navigation.sub_elements.map(&:id).should == [:divider]*10
115
- end
112
+ end
113
+ @navigation.sub_elements.size.should == 10
114
+ @navigation.sub_elements.map(&:id).should == [:divider]*10
115
+ end
116
116
  end
117
117
 
118
118
  describe "#decode_url" do
119
-
119
+
120
120
  before :each do
121
121
  @navigation = SemanticNavigation::Core::Navigation.new({})
122
122
  end
123
123
 
124
124
  it "while creating the item make support for urls in format controller#action" do
125
125
  view_object = mock
126
-
126
+
127
127
  @navigation.item :some_id, 'controller#action'
128
128
  @navigation.sub_elements.size.should == 1
129
129
  @navigation.sub_elements.first.url.should == {:controller => "controller", :action => "action"}
@@ -131,31 +131,36 @@ describe SemanticNavigation::Core::Navigation do
131
131
  end
132
132
 
133
133
  describe '#render_if' do
134
- it 'should return true if render_if proc is nil' do
135
- navigation = SemanticNavigation::Core::Navigation.new({})
136
- navigation.render_if.should be_true
137
- end
134
+ context :returns do
135
+ it 'true if render_if proc is nil' do
136
+ navigation = SemanticNavigation::Core::Navigation.new({})
137
+ navigation.render_if.should be_true
138
+ end
138
139
 
139
- it 'should return true if render_if proc return true' do
140
- navigation = SemanticNavigation::Core::Navigation.new({:render_if => proc{true}})
141
- navigation.render_if.should be_true
142
- end
140
+ it 'true if render_if proc return true' do
141
+ navigation = SemanticNavigation::Core::Navigation.new({:render_if => proc{true}})
142
+ navigation.render_if.should be_true
143
+ end
144
+
145
+ it 'false if render_if proc return false' do
146
+ navigation = SemanticNavigation::Core::Navigation.new({:render_if => proc{false}})
147
+ navigation.render_if.should be_false
148
+ end
143
149
 
144
- it 'should return false if render_if proc return false' do
145
- navigation = SemanticNavigation::Core::Navigation.new({:render_if => proc{false}})
146
- navigation.render_if.should be_false
147
150
  end
148
151
 
149
- it 'should pass self to passed proc' do
150
- navigation = SemanticNavigation::Core::Navigation.new({:id => :some_id, :render_if => proc{|o| o.id == :some_id}})
151
- navigation.render_if.should be_true
152
- navigation = SemanticNavigation::Core::Navigation.new({:id => :another_id, :render_if => proc{|o| o.id == :some_id}})
153
- navigation.render_if.should be_false
152
+ context :passes do
153
+ it 'self to passed proc' do
154
+ navigation = SemanticNavigation::Core::Navigation.new({:id => :some_id, :render_if => proc{|o| o.id == :some_id}})
155
+ navigation.render_if.should be_true
156
+ navigation = SemanticNavigation::Core::Navigation.new({:id => :another_id, :render_if => proc{|o| o.id == :some_id}})
157
+ navigation.render_if.should be_false
158
+ end
154
159
  end
155
160
  end
156
161
 
157
162
  describe '#render' do
158
- it 'should call renderer class :render_navigation method' do
163
+ it 'calls renderer class :render_navigation method' do
159
164
  renderer = mock
160
165
  navigation = SemanticNavigation::Core::Navigation.new({})
161
166
  renderer.should_receive(:render_navigation).with(navigation)
@@ -171,21 +176,21 @@ describe SemanticNavigation::Core::Navigation do
171
176
  SemanticNavigation::Configuration.stub(:view_object).and_return @view_object
172
177
  end
173
178
 
174
- it 'should define @active variable to false if no sub_elemetns' do
179
+ it 'defines @active variable to false if no sub_elemetns' do
175
180
  @navigation.mark_active
176
181
  @navigation.instance_variable_get("@active").should be false
177
182
  end
178
183
 
179
- it 'should define @active variable to true if at least one sub_element is active' do
184
+ it 'defines @active variable to true if at least one sub_element is active' do
180
185
  @navigation.item :first_item, '111'
181
186
  @navigation.item :second_item, '222'
182
187
  @view_object.should_receive(:current_page?).with('111').and_return true
183
188
  @view_object.should_receive(:current_page?).with('222').and_return false
184
-
189
+
185
190
  @navigation.mark_active
186
191
  end
187
192
 
188
- it 'should define @active variable to false if all sub_elements is unactive' do
193
+ it 'defines @active variable to false if all sub_elements is unactive' do
189
194
  @navigation.item :first_item, '333'
190
195
  @navigation.item :secodn_item, '444'
191
196
  @view_object.should_receive(:current_page?).with('333').and_return false
@@ -194,17 +199,17 @@ describe SemanticNavigation::Core::Navigation do
194
199
  @navigation.mark_active
195
200
  end
196
201
 
197
- it 'should use custom current_page? for Hash url params' do
202
+ it 'uses custom current_page? for Hash url params' do
198
203
  @navigation.item :first_item, {:controller => "controller1", :action => "action"}
199
204
  @navigation.item :second_item, {:controller => "controller2", :action => "action"}
200
205
  @view_object.stub(:params).and_return({:controller => "controller1", :action => "action", :some_other_params => "blablabla"})
201
-
206
+
202
207
  @navigation.mark_active
203
208
  @navigation.sub_elements[0].active.should be_true
204
209
  @navigation.sub_elements[1].active.should be_false
205
210
  end
206
211
 
207
- it 'should work for route like urls as good as for Hash url params' do
212
+ it 'works for route like urls as good as for Hash url params' do
208
213
  @navigation.item :first_item, "controller1#action"
209
214
  @navigation.item :second_item, "controller2#action"
210
215
  @view_object.stub(:params).and_return({:controller => "controller1", :action => "action", :some_other_params => "blablabla"})
@@ -212,7 +217,7 @@ describe SemanticNavigation::Core::Navigation do
212
217
  @navigation.mark_active
213
218
  @navigation.sub_elements[0].active.should be_true
214
219
  @navigation.sub_elements[1].active.should be_false
215
- end
220
+ end
216
221
 
217
222
  end
218
223
 
@@ -224,7 +229,7 @@ describe SemanticNavigation::Core::Navigation do
224
229
  SemanticNavigation::Configuration.stub(:view_object).and_return @view_object
225
230
  end
226
231
 
227
- it "should scope the items" do
232
+ it "scopes the items" do
228
233
  @navigation.scope do
229
234
  item :first_item, "controller1#action"
230
235
  item :second_item, "controller2#action"
@@ -233,7 +238,7 @@ describe SemanticNavigation::Core::Navigation do
233
238
  @navigation.sub_elements.size.should == 2
234
239
  end
235
240
 
236
- it "should scope the creating items options" do
241
+ it "scopes the creating items options" do
237
242
  some_condition = mock
238
243
  @navigation.scope :render_if => some_condition do
239
244
  item :first_item, "controller1#action"
@@ -245,7 +250,7 @@ describe SemanticNavigation::Core::Navigation do
245
250
  end
246
251
  end
247
252
 
248
- it "should not scope unscoped items" do
253
+ it "doesnt scope unscoped items" do
249
254
  some_condition = mock
250
255
  @navigation.scope render_if: some_condition do
251
256
  item :first_item, "controller1#action"
@@ -257,7 +262,7 @@ describe SemanticNavigation::Core::Navigation do
257
262
  last_item.instance_variable_get(:"@render_if").should == nil
258
263
  end
259
264
 
260
- it "should not override defined scopes" do
265
+ it "doesnt override defined scopes" do
261
266
  some_condition = mock
262
267
  some_condition2 = mock
263
268
  @navigation.scope :render_if => some_condition do
@@ -275,7 +280,7 @@ describe SemanticNavigation::Core::Navigation do
275
280
  end
276
281
 
277
282
  describe '#method_missing' do
278
- it 'should get unknown method and call super' do
283
+ it 'gets unknown method and call super' do
279
284
  @navigation = SemanticNavigation::Core::Navigation.new({})
280
285
  lambda{@navigation.unknow_method}.should raise_exception
281
286
  end
@@ -1,58 +1,58 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SemanticNavigation::Core::Node do
4
-
4
+
5
5
  describe '#name' do
6
6
 
7
- it 'should return basic name even if renderer name sended' do
7
+ it 'returns basic name even if renderer name sended' do
8
8
  node = SemanticNavigation::Core::Node.new({:id => :first, :name => 'first'},1)
9
- node.name(:renderer_name).should == 'first'
9
+ node.name(:renderer_name).should == 'first'
10
10
  end
11
11
 
12
- it 'should return the name for renderer' do
13
- node = SemanticNavigation::Core::Node.new({:id => :first,
12
+ it 'returns the name for renderer' do
13
+ node = SemanticNavigation::Core::Node.new({:id => :first,
14
14
  :name => {:some_renderer => 'some_renderer_name'}},
15
15
  1)
16
16
  node.name(:some_renderer).should == 'some_renderer_name'
17
17
  end
18
18
 
19
- it 'should return default name for unexpected renderer' do
20
- node = SemanticNavigation::Core::Node.new({:id => :first,
19
+ it 'returns default name for unexpected renderer' do
20
+ node = SemanticNavigation::Core::Node.new({:id => :first,
21
21
  :name => {:default => 'default_name',
22
22
  :some_renderer => 'some_renderer_name'}},
23
23
  1)
24
24
  node.name(:unexpected_renderer).should == 'default_name'
25
25
  end
26
26
 
27
- it 'should return nil if no name defined' do
27
+ it 'returns nil if no name defined' do
28
28
  node = SemanticNavigation::Core::Node.new({:id => :first}, 1)
29
29
  node.name.should == ''
30
- end
30
+ end
31
31
 
32
- it 'should return passed name while creating node' do
32
+ it 'returns passed name while creating node' do
33
33
  node = SemanticNavigation::Core::Node.new({:name => 'some name'}, 1)
34
34
  node.name.should == 'some name'
35
35
  end
36
-
37
- it 'should return i18n name if passed name is nil' do
36
+
37
+ it 'returns i18n name if passed name is nil' do
38
38
  node = SemanticNavigation::Core::Node.new({:id => :some_id, :i18n_name => :parent_name}, 1)
39
39
  I18n.should_receive(:t).with("parent_name.some_id", {:default=>""}).and_return 'some name'
40
40
  node.name.should == 'some name'
41
41
  end
42
42
 
43
- it 'should return result of proc if passed name is a proc' do
43
+ it 'returns result of proc if passed name is a proc' do
44
44
  node = SemanticNavigation::Core::Node.new({:name => proc{'some name'}},1)
45
45
  node.name.should == 'some name'
46
46
  end
47
47
  end
48
48
 
49
- describe '#url' do
50
- it 'should return passed url' do
49
+ describe '#url' do
50
+ it 'returns passed url' do
51
51
  node = SemanticNavigation::Core::Node.new({:url => {:controller => 'controller', :action => 'action'}},1)
52
52
  node.url.should == {:controller => 'controller', :action => 'action'}
53
53
  end
54
54
 
55
- it 'should return first url if passed array of urls' do
55
+ it 'returns first url if passed array of urls' do
56
56
  node = SemanticNavigation::Core::Node.new({:url => [{:controller => 'controller1', :action => 'action'},
57
57
  {:controller => 'controller2', :action => 'action'}]},1)
58
58
  node.url.should == {:controller => 'controller1', :action => 'action'}
@@ -65,51 +65,54 @@ describe SemanticNavigation::Core::Node do
65
65
  {:controller => :node_controller2, :action => :action}]},1)
66
66
 
67
67
  @view_object = mock
68
- @view_object.stub(:params).and_return({:action => "some", :action => "some"})
68
+ @view_object.stub(:params).and_return({:action => "some", :action => "some"})
69
69
  SemanticNavigation::Configuration.stub(:view_object).and_return @view_object
70
70
  end
71
71
 
72
- it 'should define @active variable to false if no active sub_elements and node url is not active' do
73
- @node.mark_active
74
- @node.instance_variable_get("@active").should be_false
75
- end
72
+ context :defines do
76
73
 
77
- it 'should define @active variable to true if at least one sub_element is active' do
78
- @node.item :first_item, '111'
79
- @node.item :second_item, '222'
80
- @view_object.should_receive(:current_page?).with('111').and_return true
81
- @view_object.should_receive(:current_page?).with('222').and_return false
82
-
83
- @node.mark_active
84
- @node.sub_elements[0].active.should be_true
85
- @node.sub_elements[1].active.should be_false
86
- @node.active.should be_true
87
- end
74
+ it '@active variable to false if no active sub_elements and node url is not active' do
75
+ @node.mark_active
76
+ @node.instance_variable_get("@active").should be_false
77
+ end
88
78
 
89
- it 'should define @active variable to false if all sub_elements is unactive' do
90
- @node.item :first_item, '333'
91
- @node.item :second_item, '444'
92
- @view_object.should_receive(:current_page?).with('333').and_return false
93
- @view_object.should_receive(:current_page?).with('444').and_return false
79
+ it '@active variable to true if at least one sub_element is active' do
80
+ @node.item :first_item, '111'
81
+ @node.item :second_item, '222'
82
+ @view_object.should_receive(:current_page?).with('111').and_return true
83
+ @view_object.should_receive(:current_page?).with('222').and_return false
94
84
 
95
- @node.mark_active
96
- @node.sub_elements[0].active.should be_false
97
- @node.sub_elements[1].active.should be_false
98
- @node.active.should be_false
85
+ @node.mark_active
86
+ @node.sub_elements[0].active.should be_true
87
+ @node.sub_elements[1].active.should be_false
88
+ @node.active.should be_true
89
+ end
90
+
91
+ it '@active variable to false if all sub_elements is unactive' do
92
+ @node.item :first_item, '333'
93
+ @node.item :second_item, '444'
94
+ @view_object.should_receive(:current_page?).with('333').and_return false
95
+ @view_object.should_receive(:current_page?).with('444').and_return false
96
+
97
+ @node.mark_active
98
+ @node.sub_elements[0].active.should be_false
99
+ @node.sub_elements[1].active.should be_false
100
+ @node.active.should be_false
101
+ end
99
102
  end
100
103
 
101
- it 'should use custom current_page? for Hash url params' do
104
+ it 'uses custom current_page? for Hash url params' do
102
105
  @node.item :first_item, {:controller => "controller1", :action => "action"}
103
106
  @node.item :second_item, {:controller => "controller2", :action => "action"}
104
107
  @view_object.stub(:params).and_return({:controller => "controller1", :action => "action", :some_other_params => "blablabla"})
105
-
108
+
106
109
  @node.mark_active
107
110
  @node.sub_elements[0].active.should be_true
108
111
  @node.sub_elements[1].active.should be_false
109
112
  @node.active.should be true
110
113
  end
111
114
 
112
- it 'should work for route like urls as good as for Hash url params' do
115
+ it 'works for route like urls as good as for Hash url params' do
113
116
  @node.item :first_item, "controller1#action"
114
117
  @node.item :second_item, "controller2#action"
115
118
  @view_object.stub(:params).and_return({:controller => "controller1", :action => "action", :some_other_params => "blablabla"})
@@ -117,16 +120,16 @@ describe SemanticNavigation::Core::Node do
117
120
  @node.mark_active
118
121
  @node.sub_elements[0].active.should be_true
119
122
  @node.sub_elements[1].active.should be_false
120
- @node.active.should be true
123
+ @node.active.should be true
121
124
  end
122
125
 
123
- it 'should be active if at least one url in passed array is active' do
126
+ it 'is active if at least one url in passed array is active' do
124
127
  @view_object.stub(:params).and_return(:controller => 'node_controller2', :action => 'action')
125
128
  @node.mark_active
126
129
  @node.active.should be_true
127
130
  end
128
131
 
129
- it 'should accept array like urls with other urls' do
132
+ it 'accepts array like urls with other urls' do
130
133
  node = SemanticNavigation::Core::Node.new({:url => [['url','with','id'],
131
134
  :symbol_url_name,
132
135
  {:controller => 'hash', :action => 'url'},
@@ -138,6 +141,6 @@ describe SemanticNavigation::Core::Node do
138
141
  node.mark_active
139
142
  end
140
143
 
141
- end
144
+ end
142
145
 
143
- end
146
+ end