tabs_on_rails 0.8.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.
@@ -0,0 +1,81 @@
1
+ require 'test_helper'
2
+
3
+ class ControllerMixinWithControllerTest < ActionController::TestCase
4
+ include ControllerTestHelpers
5
+
6
+ class MixinController < ActionController::Base
7
+ def self.controller_name; "mixin"; end
8
+ def self.controller_path; "mixin"; end
9
+
10
+ layout false
11
+
12
+ set_tab :dashboard
13
+ set_tab :welcome, :only => %w(action_welcome)
14
+ set_tab :dashboard, :only => %w(action_namespace)
15
+ set_tab :homepage, :namespace, :only => %w(action_namespace)
16
+
17
+ def method_missing(method, *args)
18
+ if method =~ /^action_(.*)/
19
+ render :action => (params[:template] || 'standard')
20
+ end
21
+ end
22
+
23
+ def rescue_action(e) raise end
24
+ end
25
+
26
+ MixinController.view_paths = [ File.dirname(__FILE__) + "/fixtures/" ]
27
+
28
+ def setup
29
+ @controller = MixinController.new
30
+ @controller_proxy = ControllerProxy.new(@controller)
31
+ @request = ActionController::TestRequest.new
32
+ @response = ActionController::TestResponse.new
33
+ end
34
+
35
+
36
+ def test_set_tab
37
+ get :action_dashboard
38
+ assert_equal(:dashboard, controller.current_tab)
39
+ assert_equal(:dashboard, controller.current_tab(:default))
40
+ assert_equal(%Q{<ul>
41
+ <li><span>Dashboard</span></li>
42
+ <li><a href="/w">Welcome</a></li>
43
+ </ul>}, @response.body)
44
+ end
45
+
46
+ def test_set_tab_with_only_option
47
+ get :action_welcome
48
+ assert_equal(:welcome, controller.current_tab)
49
+ assert_equal(:welcome, controller.current_tab(:default))
50
+ assert_equal(%Q{<ul>
51
+ <li><a href="/d">Dashboard</a></li>
52
+ <li><span>Welcome</span></li>
53
+ </ul>}, @response.body)
54
+ end
55
+
56
+ def test_set_tab_with_namespace
57
+ get :action_namespace
58
+ assert_equal(:dashboard, controller.current_tab)
59
+ assert_equal(:dashboard, controller.current_tab(:default))
60
+ assert_equal(:homepage, controller.current_tab(:namespace))
61
+ assert_equal(%Q{<ul>
62
+ <li><span>Dashboard</span></li>
63
+ <li><a href="/w">Welcome</a></li>
64
+ </ul>}, @response.body)
65
+ end
66
+
67
+ def test_current_tab
68
+ get :action_dashboard
69
+ assert_equal :dashboard, controller.current_tab
70
+ assert_equal :dashboard, controller.current_tab(:default)
71
+ end
72
+
73
+ def test_current_tab_question
74
+ get :action_dashboard
75
+ assert controller.current_tab?(:dashboard)
76
+ assert controller.current_tab?(:dashboard, :default)
77
+ assert !controller.current_tab?(:foobar)
78
+ assert !controller.current_tab?(:foobar, :default)
79
+ end
80
+
81
+ end
@@ -0,0 +1,4 @@
1
+ <% tabs_tag do |tabs| %>
2
+ <%= tabs.dashboard 'Dashboard', '/d' %>
3
+ <%= tabs.welcome 'Welcome', '/w' %>
4
+ <% end -%>
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ class TabsBuilderTest < ActionView::TestCase
4
+
5
+ class TabsBuilderTemplate
6
+ include ActionView::Helpers::TagHelper
7
+ include ActionView::Helpers::UrlHelper
8
+
9
+ def current_tab(namespace)
10
+ case namespace
11
+ when nil, :default
12
+ :dashboard
13
+ when :foospace
14
+ :footab
15
+ else
16
+ :elsetab
17
+ end
18
+ end
19
+ end
20
+
21
+ def setup
22
+ @template = TabsBuilderTemplate.new
23
+ @builder = TabsOnRails::Tabs::TabsBuilder.new(@template)
24
+ end
25
+
26
+ def test_should_implement_builder
27
+ assert_equal(TabsOnRails::Tabs::Builder, TabsOnRails::Tabs::TabsBuilder.superclass)
28
+ end
29
+
30
+ def test_tab_for_should_return_link_to_unless_current_tab
31
+ assert_dom_equal('<li><a href="#">Welcome</a></li>', @builder.tab_for(:welcome, 'Welcome', '#'))
32
+ assert_dom_equal('<li><a href="http://foobar.com/">Foo Bar</a></li>', @builder.tab_for(:welcome, 'Foo Bar', 'http://foobar.com/'))
33
+ end
34
+
35
+ def test_tab_for_should_return_span_if_current_tab
36
+ assert_dom_equal('<li><span>Dashboard</span></li>', @builder.tab_for(:dashboard, 'Dashboard', '#'))
37
+ assert_dom_equal('<li><span>Foo Bar</span></li>', @builder.tab_for(:dashboard, 'Foo Bar', '#'))
38
+ end
39
+
40
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class TabsOnRailsTest < ActiveSupport::TestCase
4
+
5
+ def test_nothing_because_I_have_the_other_test_files
6
+ assert true
7
+ end
8
+
9
+ end
@@ -0,0 +1,54 @@
1
+
2
+
3
+ require 'rubygems'
4
+ gem 'rails', '~>2.3.0'
5
+ gem 'mocha', '0.9.7'
6
+
7
+ # Remember! Due to some Mocha internal changes,
8
+ # Rails 2.2.x requires Mocha 0.9.5 and
9
+ # Rails 2.3.x requires Mocha 0.9.7
10
+ # gem 'rails', '2.2.2'
11
+ # gem 'mocha', '0.9.5'
12
+
13
+ require 'mocha'
14
+ require 'test/unit'
15
+ require 'active_support'
16
+ require 'action_controller'
17
+ require 'action_controller/cgi_ext'
18
+ require 'action_controller/test_process'
19
+ require 'action_view/test_case'
20
+
21
+ $:.unshift File.dirname(__FILE__) + '/../lib'
22
+ require File.dirname(__FILE__) + '/../init.rb'
23
+
24
+ RAILS_ROOT = '.' unless defined? RAILS_ROOT
25
+ RAILS_ENV = 'test' unless defined? RAILS_ENV
26
+
27
+ ActionController::Base.logger = nil
28
+ ActionController::Routing::Routes.reload rescue nil
29
+
30
+
31
+ # Unit tests for Helpers are based on unit tests created and developed by Rails core team.
32
+ # See action_pack/test/abstract_unit for more details.
33
+
34
+
35
+ module ControllerTestHelpers
36
+ private
37
+
38
+ def controller
39
+ @controller_proxy
40
+ end
41
+
42
+ class ControllerProxy
43
+ def initialize(controller)
44
+ @controller = controller
45
+ end
46
+ def method_missing(method, *args)
47
+ @controller.instance_eval do
48
+ m = method(method)
49
+ m.call(*args)
50
+ end
51
+ end
52
+ end
53
+
54
+ end
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tabs_on_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.1
5
+ platform: ruby
6
+ authors:
7
+ - Simone Carletti
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-09 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.8"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: echoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "3.1"
34
+ version:
35
+ description: " TabsOnRails is a simple Ruby on Rails plugin for creating and managing Tabs. It provides helpers for creating tabs with a flexible interface.\n"
36
+ email: weppos@weppos.net
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - CHANGELOG.rdoc
43
+ - lib/tabs_on_rails/controller_mixin.rb
44
+ - lib/tabs_on_rails/tabs.rb
45
+ - lib/tabs_on_rails/version.rb
46
+ - lib/tabs_on_rails.rb
47
+ - LICENSE.rdoc
48
+ - README.rdoc
49
+ files:
50
+ - CHANGELOG.rdoc
51
+ - init.rb
52
+ - install.rb
53
+ - lib/tabs_on_rails/controller_mixin.rb
54
+ - lib/tabs_on_rails/tabs.rb
55
+ - lib/tabs_on_rails/version.rb
56
+ - lib/tabs_on_rails.rb
57
+ - LICENSE.rdoc
58
+ - Manifest
59
+ - rails/init.rb
60
+ - Rakefile
61
+ - README.rdoc
62
+ - tabs_on_rails.gemspec
63
+ - tasks/tabs_on_rails_tasks.rake
64
+ - test/builder_test.rb
65
+ - test/controller_mixin_helpers_test.rb
66
+ - test/controller_mixin_test.rb
67
+ - test/controller_mixin_with_controller_test.rb
68
+ - test/fixtures/mixin/standard.html.erb
69
+ - test/tabs_builder_test.rb
70
+ - test/tabs_on_rails_test.rb
71
+ - test/test_helper.rb
72
+ - uninstall.rb
73
+ has_rdoc: true
74
+ homepage: http://code.simonecarletti.com/tabsonrails
75
+ licenses: []
76
+
77
+ post_install_message:
78
+ rdoc_options:
79
+ - --line-numbers
80
+ - --inline-source
81
+ - --title
82
+ - Tabs_on_rails
83
+ - --main
84
+ - README.rdoc
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ version:
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: "1.2"
98
+ version:
99
+ requirements: []
100
+
101
+ rubyforge_project:
102
+ rubygems_version: 1.3.4
103
+ signing_key:
104
+ specification_version: 3
105
+ summary: A simple Ruby on Rails plugin for creating and managing Tabs.
106
+ test_files:
107
+ - test/builder_test.rb
108
+ - test/controller_mixin_helpers_test.rb
109
+ - test/controller_mixin_test.rb
110
+ - test/controller_mixin_with_controller_test.rb
111
+ - test/tabs_builder_test.rb
112
+ - test/tabs_on_rails_test.rb
113
+ - test/test_helper.rb