semantic_navigation 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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