Creating helpers module and link helpers.

This commit is contained in:
Carlos A. da Silva
2009-10-08 09:32:48 -03:00
parent fa4f9043b8
commit 3b5f1437b5
10 changed files with 46 additions and 118 deletions

View File

@@ -0,0 +1,14 @@
module DeviseHelper
def link_to_sign_in
link_to 'Sign in', new_session_path
end
def link_to_new_password
link_to 'Forgot password?', new_password_path
end
def link_to_new_confirmation
link_to 'Didn\'t receive confirmation instructions?', new_confirmation_path
end
end

View File

@@ -8,4 +8,4 @@
<p class="submit"><%= f.submit "Resend confirmation instructions" %></p>
<% end %>
<%= link_to 'Sign in', new_session_path %>
<%= link_to_sign_in %> | <%= link_to_new_password %>

View File

@@ -10,3 +10,5 @@
<p><%= f.password_field :password_confirmation %></p>
<p class="submit"><%= f.submit "Change my password" %></p>
<% end %>
<%= link_to_sign_in %> | <%= link_to_new_confirmation %>

View File

@@ -8,4 +8,4 @@
<p class="submit"><%= f.submit "Send me reset password instructions" %></p>
<% end %>
<%= link_to 'Sign in', new_session_path %>
<%= link_to_sign_in %> | <%= link_to_new_confirmation %>

View File

@@ -10,5 +10,4 @@
<p class='submit'><%= f.submit 'Sign In' %></p>
<% end -%>
<%= link_to "Forgot password?", new_password_path %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path %>
<%= link_to_new_password %> | <%= link_to_new_confirmation %>

View File

@@ -1,2 +1,9 @@
require 'devise'
# Configures a preparation callback to include devise authenticable module and
# view helpers (engines don't load helpers by default)
#config.to_prepare do
# ActionController::Base.send :include, Devise::Controllers::Authenticable
# ActionView::Base.send :include, DeviseHelper
## ApplicationController.helper(DeviseHelper)
#end

View File

@@ -19,6 +19,5 @@ require 'devise/models/confirmable'
require 'devise/models/recoverable'
require 'devise/models/validatable'
class ActionController::Base
include Devise::Controllers::Authenticable
end
ActionController::Base.send :include, Devise::Controllers::Authenticable
ActionView::Base.send :include, DeviseHelper

View File

@@ -0,0 +1,16 @@
require 'test_helper'
class DeviseHelperTest < ActionView::TestCase
test 'should generate a link to sign in' do
assert_equal %[<a href="#{new_session_path}">Sign in</a>], link_to_sign_in
end
test 'should generate a link to forgot password' do
assert_equal %[<a href="#{new_password_path}">Forgot password?</a>], link_to_new_password
end
test 'should generate a link to confirmation instructions' do
assert_equal %[<a href="#{new_confirmation_path}">Didn't receive confirmation instructions?</a>], link_to_new_confirmation
end
end

View File

@@ -1,108 +0,0 @@
# Shoulda model builder
#
class ActiveSupport::TestCase
def create_table(table_name, &block)
connection = ActiveRecord::Base.connection
begin
connection.execute("DROP TABLE IF EXISTS #{table_name}")
connection.create_table(table_name, &block)
@created_tables ||= []
@created_tables << table_name
connection
rescue Exception => e
connection.execute("DROP TABLE IF EXISTS #{table_name}")
raise e
end
end
def define_constant(class_name, base, &block)
class_name = class_name.to_s.camelize
klass = Class.new(base)
Object.const_set(class_name, klass)
klass.class_eval(&block) if block_given?
@defined_constants ||= []
@defined_constants << class_name
klass
end
def define_model_class(class_name, &block)
define_constant(class_name, ActiveRecord::Base, &block)
end
def define_model(name, columns = {}, &block)
class_name = name.to_s.pluralize.classify
table_name = class_name.tableize
create_table(table_name) do |table|
columns.each do |name, type|
table.column name, type
end
end
define_model_class(class_name, &block)
end
def define_controller(class_name, &block)
class_name = class_name.to_s
class_name << 'Controller' unless class_name =~ /Controller$/
define_constant(class_name, ActionController::Base, &block)
end
def define_routes(&block)
@replaced_routes = ActionController::Routing::Routes
new_routes = ActionController::Routing::RouteSet.new
silence_warnings do
ActionController::Routing.const_set('Routes', new_routes)
end
new_routes.draw(&block)
end
def build_response(&block)
klass = define_controller('Examples')
block ||= lambda { render :nothing => true }
klass.class_eval { define_method(:example, &block) }
define_routes do |map|
map.connect 'examples', :controller => 'examples', :action => 'example'
end
@controller = klass.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
get :example
@controller
end
def teardown_with_models
if @defined_constants
@defined_constants.each do |class_name|
Object.send(:remove_const, class_name)
end
end
if @created_tables
@created_tables.each do |table_name|
ActiveRecord::Base.
connection.
execute("DROP TABLE IF EXISTS #{table_name}")
end
end
if @replaced_routes
ActionController::Routing::Routes.clear!
silence_warnings do
ActionController::Routing.const_set('Routes', @replaced_routes)
end
@replaced_routes.reload!
end
teardown_without_models
end
alias_method :teardown_without_models, :teardown
alias_method :teardown, :teardown_with_models
end

View File

@@ -8,10 +8,9 @@ require 'webrat'
require 'assertions_helper'
require 'models_helper'
require 'integration_tests_helper'
require 'model_builder'
ActiveSupport::Dependencies.load_paths << File.expand_path(File.dirname(__FILE__) + '/../lib')
require_dependency 'devise'
#ActiveSupport::Dependencies.load_paths << File.expand_path(File.dirname(__FILE__) + '/..')
#require_dependency 'devise'
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true