xebec 2.6.0 → 2.6.1

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