xebec 2.6.0 → 2.6.1

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.
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
2
2
  require 'xebec'
3
3
 
4
4
  class NavBarRendererTest < Test::Unit::TestCase
5
-
5
+
6
6
  context 'creating a NavBar renderer' do
7
7
  should 'require a NavBar' do
8
8
  assert_raises(ArgumentError) do
@@ -15,62 +15,62 @@ class NavBarRendererTest < Test::Unit::TestCase
15
15
  end
16
16
  end
17
17
  end
18
-
18
+
19
19
  context 'a NavBar renderer' do
20
-
20
+
21
21
  setup do
22
22
  clear_translations!
23
23
  @bar = Xebec::NavBar.new('elephants')
24
24
  @helper = new_nav_bar_helper
25
25
  @renderer = Xebec::NavBarRenderer.new(@bar, @helper)
26
26
  end
27
-
27
+
28
28
  should 'respond to :name' do
29
29
  assert @renderer.respond_to?(:name)
30
30
  end
31
-
31
+
32
32
  should "return the NavBar's name when sent :name" do
33
33
  assert_equal 'elephants', @renderer.name
34
34
  end
35
-
35
+
36
36
  should 'support additional HTML properties' do
37
37
  @bar.html_attributes.merge!(:id => 'salads-nav')
38
38
  assert_equal({:id => 'salads-nav'}, @renderer.html_attributes)
39
39
  assert_select_from @renderer.to_s, '#salads-nav'
40
40
  end
41
-
41
+
42
42
  should 'not respond to a method that the underlying NavBar does not' do
43
43
  assert !@renderer.respond_to?(:cromulize)
44
44
  end
45
-
45
+
46
46
  context 'for a browser that supports HTML5' do
47
47
  setup { @renderer.stubs(:user_agent_supports_html5?).returns(true) }
48
-
48
+
49
49
  should "render a navigation bar with the bar's name" do
50
50
  assert_select_from @renderer.to_s, "nav.elephants"
51
51
  end
52
-
52
+
53
53
  context 'with an empty NavBar' do
54
54
  should 'render an empty navigation bar' do
55
55
  assert_select_from @renderer.to_s, 'nav', /$^/
56
56
  end
57
57
  end
58
58
  end
59
-
59
+
60
60
  context 'for a browser that does not support HTML5' do
61
61
  setup { @helper.stubs(:user_agent_supports_html5?).returns(false) }
62
-
62
+
63
63
  should "render a div.navbar the bar's name" do
64
64
  assert_select_from @renderer.to_s, "div.navbar.elephants"
65
65
  end
66
-
66
+
67
67
  context 'with an empty NavBar' do
68
68
  should 'render an empty navigation bar' do
69
69
  assert_select_from @renderer.to_s, 'div.navbar', /$^/
70
70
  end
71
71
  end
72
72
  end
73
-
73
+
74
74
  context 'with a NavBar that has a navigation item declared as a name' do
75
75
  setup do
76
76
  @helper.stubs(:foo_path).returns("/foo")
@@ -84,7 +84,7 @@ class NavBarRendererTest < Test::Unit::TestCase
84
84
  end
85
85
  end
86
86
  end
87
-
87
+
88
88
  context 'with a NavBar that has a navigation item set as current' do
89
89
  setup do
90
90
  @bar.nav_item :foo, '/foo'
@@ -110,7 +110,7 @@ class NavBarRendererTest < Test::Unit::TestCase
110
110
  end
111
111
  end
112
112
  end
113
-
113
+
114
114
  context 'with a NavBar that has a NavItem with a String name' do
115
115
  setup do
116
116
  @bar.nav_item 'foo', '/foo'
@@ -127,7 +127,7 @@ class NavBarRendererTest < Test::Unit::TestCase
127
127
  assert_equal original_text, @bar.items.first.name.dup
128
128
  end
129
129
  end
130
-
130
+
131
131
  context 'with a NavBar that has a navigation item not set as current' do
132
132
  setup do
133
133
  @bar.nav_item :foo, '/foo'
@@ -143,7 +143,7 @@ class NavBarRendererTest < Test::Unit::TestCase
143
143
  assert(!(/class\s*=\s*["']\s*["']/ === @renderer.to_s))
144
144
  end
145
145
  end
146
-
146
+
147
147
  context 'with a NavBar that has a navigation item declared as a name and URL' do
148
148
  setup do
149
149
  @bar.nav_item :foo, 'http://foo.com'
@@ -156,7 +156,7 @@ class NavBarRendererTest < Test::Unit::TestCase
156
156
  end
157
157
  end
158
158
  end
159
-
159
+
160
160
  context 'with a NavBar that has a navigation item that links to the current page' do
161
161
  setup do
162
162
  @helper.stubs(:current_page?).with('/').returns(true)
@@ -183,7 +183,7 @@ class NavBarRendererTest < Test::Unit::TestCase
183
183
  end
184
184
  end
185
185
  end
186
-
186
+
187
187
  context "with a NavBar that has a navigation item with an i18n'd title" do
188
188
  setup do
189
189
  define_translation 'navbar.elephants.foo', 'My Foos'
@@ -198,7 +198,18 @@ class NavBarRendererTest < Test::Unit::TestCase
198
198
  end
199
199
  end
200
200
  end
201
-
201
+
202
+ context 'with a NavBar that has several nav items' do
203
+ setup do
204
+ @bar.nav_item :foo, '/foo'
205
+ @bar.nav_item :bar, '/bar'
206
+ end
207
+
208
+ should 'return an HTML-safe navigation bar' do
209
+ assert @renderer.to_s.html_safe?
210
+ end
211
+ end
212
+
202
213
  end
203
-
214
+
204
215
  end
data/test/nav_bar_test.rb CHANGED
@@ -2,29 +2,29 @@ require File.join(File.dirname(__FILE__), 'test_helper')
2
2
  require 'xebec'
3
3
 
4
4
  class NavBarTest < Test::Unit::TestCase
5
-
5
+
6
6
  context 'a NavBar' do
7
-
7
+
8
8
  setup do
9
9
  @bar = Xebec::NavBar.new
10
10
  end
11
-
11
+
12
12
  should 'use :default as its name by default' do
13
13
  assert_equal :default, @bar.name
14
14
  end
15
-
15
+
16
16
  should 'use a specified name' do
17
17
  assert_equal 'fazbot', Xebec::NavBar.new('fazbot').name
18
18
  end
19
-
19
+
20
20
  should 'be empty by default' do
21
21
  assert @bar.empty?
22
22
  end
23
-
23
+
24
24
  should 'not have any item specified as current by default' do
25
25
  assert @bar.current.blank?
26
26
  end
27
-
27
+
28
28
  context 'with some items' do
29
29
  setup do
30
30
  @bar.nav_item :foo
@@ -34,7 +34,7 @@ class NavBarTest < Test::Unit::TestCase
34
34
  assert !@bar.empty?
35
35
  end
36
36
  end
37
-
37
+
38
38
  should 'not allow a nameless item to be added' do
39
39
  assert_raises ArgumentError do
40
40
  @bar.nav_item nil
@@ -43,7 +43,7 @@ class NavBarTest < Test::Unit::TestCase
43
43
  @bar.nav_item ''
44
44
  end
45
45
  end
46
-
46
+
47
47
  end
48
-
48
+
49
49
  end
data/test/test_helper.rb CHANGED
@@ -1,19 +1,17 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require 'rubygems'
3
+ require 'bundler'
4
+ Bundler.setup
5
+
1
6
  require 'test/unit'
2
7
  require 'test/unit/testcase'
3
- require 'rubygems'
4
8
  require 'shoulda'
5
9
  require 'mocha'
6
- require 'activesupport'
7
- require 'actionpack'
10
+ require 'active_support'
11
+ require 'action_pack'
8
12
  require 'action_view'
9
13
  require 'action_controller'
10
- require 'action_controller/test_process'
11
-
12
- begin
13
- require 'redgreen/unicode'
14
- rescue MissingSourceFile
15
- require 'redgreen'
16
- end
14
+ require 'action_dispatch'
17
15
 
18
16
  [['..', 'lib'], ['lib']].each do |lib_dir|
19
17
  lib_path = File.expand_path(File.join(File.dirname(__FILE__), *lib_dir))
@@ -23,21 +21,21 @@ end
23
21
  require 'xebec'
24
22
 
25
23
  Test::Unit::TestCase.class_eval do
26
- include ActionController::Assertions::SelectorAssertions
27
-
24
+ include ActionDispatch::Assertions::SelectorAssertions
25
+
28
26
  def assert_select_from(text, *args, &block)
29
27
  @selected = HTML::Document.new(text).root.children
30
28
  assert_select(*args, &block)
31
29
  end
32
-
30
+
33
31
  def new_nav_bar_helper
34
32
  ActionView::Base.new.tap do |helper|
35
33
  helper.extend Xebec::NavBarHelper
36
- helper.request = ActionController::TestRequest.new
34
+ helper.request = ActionDispatch::TestRequest.new
37
35
  helper.stubs(:current_page?).returns(false)
38
36
  end
39
37
  end
40
-
38
+
41
39
  def clear_translations!
42
40
  I18n.reload!
43
41
  end
@@ -46,6 +44,6 @@ Test::Unit::TestCase.class_eval do
46
44
  hash = key.to_s.split('.').reverse.inject(value) do |value, key_part|
47
45
  { key_part.to_sym => value }
48
46
  end
49
- I18n.backend.send :merge_translations, I18n.locale, hash
47
+ I18n.backend.send :store_translations, I18n.locale, hash
50
48
  end
51
49
  end
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
2
2
  require 'xebec'
3
3
 
4
4
  class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
5
-
5
+
6
6
  def setup
7
7
  @old_renderer_class = Xebec::renderer_class
8
8
  load 'xebec/title_enhanced_nav_bar_renderer.rb'
@@ -12,17 +12,17 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
12
12
  @renderer = Xebec::renderer_class.new(@bar, @helper)
13
13
  @bar.nav_item :zn, '/elements/zn'
14
14
  end
15
-
15
+
16
16
  def teardown
17
17
  Xebec::renderer_class = @old_renderer_class
18
18
  end
19
-
19
+
20
20
  context 'using the title-enhanced renderer' do
21
-
21
+
22
22
  should 'replace the default renderer class automatically' do
23
23
  assert_equal Xebec::TitleEnhancedNavBarRenderer, Xebec::renderer_class
24
24
  end
25
-
25
+
26
26
  context 'with neither text nor a title translation specified' do
27
27
  should "use the nav item's name titleized for the link text" do
28
28
  assert_select_from @renderer.to_s, 'ul li.zn' do
@@ -33,7 +33,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
33
33
  assert_select_from @renderer.to_s, 'ul li.zn[title="Zn"]'
34
34
  end
35
35
  end
36
-
36
+
37
37
  context 'with a text but not a title translation specified' do
38
38
  setup do
39
39
  define_translation 'navbar.elements.zn.text', 'Zinc'
@@ -48,7 +48,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
48
48
  assert_select_from @renderer.to_s, 'ul li.zn[title="Zinc"]'
49
49
  end
50
50
  end
51
-
51
+
52
52
  context 'with a title but no text translation specified' do
53
53
  setup do
54
54
  define_translation 'navbar.elements.zn.title', 'Zinc'
@@ -63,7 +63,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
63
63
  assert_select_from @renderer.to_s, 'ul li.zn[title="Zinc"]'
64
64
  end
65
65
  end
66
-
66
+
67
67
  context 'with both a title and a text translation specified' do
68
68
  setup do
69
69
  define_translation 'navbar.elements.zn.text', 'Zinc'
@@ -79,7 +79,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
79
79
  assert_select_from @renderer.to_s, 'ul li.zn[title="30: Zinc"]'
80
80
  end
81
81
  end
82
-
82
+
83
83
  end
84
-
84
+
85
85
  end
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
2
2
  require 'xebec'
3
3
 
4
4
  class WebAppThemeRendererTest < Test::Unit::TestCase
5
-
5
+
6
6
  def setup
7
7
  @old_renderer_class = Xebec::renderer_class
8
8
  load 'xebec/web_app_theme_renderer.rb'
@@ -11,19 +11,19 @@ class WebAppThemeRendererTest < Test::Unit::TestCase
11
11
  @renderer = Xebec::renderer_class.new(@bar, @helper)
12
12
  @bar.nav_item :baz, '/baz'
13
13
  end
14
-
14
+
15
15
  def teardown
16
16
  Xebec::renderer_class = @old_renderer_class
17
17
  end
18
-
18
+
19
19
  context 'using the Web-App-Theme support' do
20
20
  should 'replace the default renderer class automatically' do
21
21
  assert_equal Xebec::WebAppThemeRenderer, Xebec::renderer_class
22
22
  end
23
-
23
+
24
24
  should 'render navigation <ul>s with wat-cf' do
25
25
  assert_select_from @renderer.to_s, 'ul.wat-cf'
26
26
  end
27
27
  end
28
-
28
+
29
29
  end
data/xebec.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{xebec}
8
- s.version = "2.6.0"
8
+ s.version = "2.6.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James A. Rosen"]
12
- s.date = %q{2010-06-04}
12
+ s.date = %q{2011-01-16}
13
13
  s.description = %q{Helpers for generating navigation bars}
14
14
  s.email = %q{james.a.rosen@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -19,9 +19,7 @@ Gem::Specification.new do |s|
19
19
  ".gitignore",
20
20
  "README.md",
21
21
  "Rakefile",
22
- "VERSION",
23
22
  "developer_tasks/doc.rake",
24
- "developer_tasks/gem.rake",
25
23
  "developer_tasks/test.rake",
26
24
  "doc/example_app/Gemfile",
27
25
  "doc/example_app/README.md",
@@ -92,16 +90,16 @@ Gem::Specification.new do |s|
92
90
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
93
91
  s.add_development_dependency(%q<shoulda>, ["~> 2.10.3"])
94
92
  s.add_development_dependency(%q<mocha>, ["~> 0.9.8"])
95
- s.add_development_dependency(%q<redgreen>, ["~> 1.2.2"])
93
+ s.add_development_dependency(%q<rails>, ["~> 3.0"])
96
94
  else
97
95
  s.add_dependency(%q<shoulda>, ["~> 2.10.3"])
98
96
  s.add_dependency(%q<mocha>, ["~> 0.9.8"])
99
- s.add_dependency(%q<redgreen>, ["~> 1.2.2"])
97
+ s.add_dependency(%q<rails>, ["~> 3.0"])
100
98
  end
101
99
  else
102
100
  s.add_dependency(%q<shoulda>, ["~> 2.10.3"])
103
101
  s.add_dependency(%q<mocha>, ["~> 0.9.8"])
104
- s.add_dependency(%q<redgreen>, ["~> 1.2.2"])
102
+ s.add_dependency(%q<rails>, ["~> 3.0"])
105
103
  end
106
104
  end
107
105
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 2
7
7
  - 6
8
- - 0
9
- version: 2.6.0
8
+ - 1
9
+ version: 2.6.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - James A. Rosen
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-04 00:00:00 -04:00
17
+ date: 2011-01-16 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: shoulda
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ~>
26
27
  - !ruby/object:Gem::Version
@@ -35,6 +36,7 @@ dependencies:
35
36
  name: mocha
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
41
  - - ~>
40
42
  - !ruby/object:Gem::Version
@@ -46,17 +48,17 @@ dependencies:
46
48
  type: :development
47
49
  version_requirements: *id002
48
50
  - !ruby/object:Gem::Dependency
49
- name: redgreen
51
+ name: rails
50
52
  prerelease: false
51
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
52
55
  requirements:
53
56
  - - ~>
54
57
  - !ruby/object:Gem::Version
55
58
  segments:
56
- - 1
57
- - 2
58
- - 2
59
- version: 1.2.2
59
+ - 3
60
+ - 0
61
+ version: "3.0"
60
62
  type: :development
61
63
  version_requirements: *id003
62
64
  description: Helpers for generating navigation bars
@@ -71,9 +73,7 @@ files:
71
73
  - .gitignore
72
74
  - README.md
73
75
  - Rakefile
74
- - VERSION
75
76
  - developer_tasks/doc.rake
76
- - developer_tasks/gem.rake
77
77
  - developer_tasks/test.rake
78
78
  - doc/example_app/Gemfile
79
79
  - doc/example_app/README.md
@@ -135,6 +135,7 @@ rdoc_options:
135
135
  require_paths:
136
136
  - lib
137
137
  required_ruby_version: !ruby/object:Gem::Requirement
138
+ none: false
138
139
  requirements:
139
140
  - - ">="
140
141
  - !ruby/object:Gem::Version
@@ -142,6 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
143
  - 0
143
144
  version: "0"
144
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
145
147
  requirements:
146
148
  - - ">="
147
149
  - !ruby/object:Gem::Version
@@ -151,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
153
  requirements: []
152
154
 
153
155
  rubyforge_project:
154
- rubygems_version: 1.3.6
156
+ rubygems_version: 1.3.7
155
157
  signing_key:
156
158
  specification_version: 3
157
159
  summary: Navigation helpers