Commit d5678672f051154e2e1d03d8de96851557a8913e
1 parent
a0b41878
Exists in
master
and in
22 other branches
ActionItem9: adding tests and minor refactoring in account_controller
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@192 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
4 changed files
with
41 additions
and
11 deletions
Show diff stats
app/controllers/account_controller.rb
| @@ -23,14 +23,16 @@ class AccountController < ApplicationController | @@ -23,14 +23,16 @@ class AccountController < ApplicationController | ||
| 23 | end | 23 | end |
| 24 | 24 | ||
| 25 | def signup | 25 | def signup |
| 26 | - @user = User.new(params[:user]) | ||
| 27 | - return unless request.post? | ||
| 28 | - @user.save! | ||
| 29 | - self.current_user = @user | ||
| 30 | - redirect_back_or_default(:controller => '/account', :action => 'index') | ||
| 31 | - flash[:notice] = _("Thanks for signing up!") | ||
| 32 | - rescue ActiveRecord::RecordInvalid | ||
| 33 | - render :action => 'signup' | 26 | + begin |
| 27 | + @user = User.new(params[:user]) | ||
| 28 | + return unless request.post? | ||
| 29 | + @user.save! | ||
| 30 | + self.current_user = @user | ||
| 31 | + redirect_back_or_default(:controller => '/account', :action => 'index') | ||
| 32 | + flash[:notice] = _("Thanks for signing up!") | ||
| 33 | + rescue ActiveRecord::RecordInvalid | ||
| 34 | + render :action => 'signup' | ||
| 35 | + end | ||
| 34 | end | 36 | end |
| 35 | 37 | ||
| 36 | def logout | 38 | def logout |
app/helpers/application_helper.rb
| @@ -92,13 +92,29 @@ module ApplicationHelper | @@ -92,13 +92,29 @@ module ApplicationHelper | ||
| 92 | end | 92 | end |
| 93 | 93 | ||
| 94 | def header | 94 | def header |
| 95 | - virtual_community_identification + (logged_in? ? user_links : login_box) | 95 | + virtual_community_identification + login_or_register_or_logout |
| 96 | + end | ||
| 97 | + | ||
| 98 | + def login_or_register_or_logout | ||
| 99 | + if logged_in? | ||
| 100 | + user_links + logout_box | ||
| 101 | + else | ||
| 102 | + login_box + register_box | ||
| 103 | + end | ||
| 96 | end | 104 | end |
| 97 | 105 | ||
| 98 | def login_box | 106 | def login_box |
| 99 | content_tag('div', (link_to _('Login'), :controller => 'account', :action => 'login'), :id => 'login_box') | 107 | content_tag('div', (link_to _('Login'), :controller => 'account', :action => 'login'), :id => 'login_box') |
| 100 | end | 108 | end |
| 101 | 109 | ||
| 110 | + def register_box | ||
| 111 | + content_tag('div', (link_to _('Not a user yet? Register now!'), :controller => 'account', :action => 'signup'), :id => 'register_box') | ||
| 112 | + end | ||
| 113 | + | ||
| 114 | + def logout_box | ||
| 115 | + content_tag('div', (link_to _('Logout'), { :controller => 'account', :action => 'logout'}, :method => 'post'), :id => 'logout_box') | ||
| 116 | + end | ||
| 117 | + | ||
| 102 | # FIXME | 118 | # FIXME |
| 103 | def footer | 119 | def footer |
| 104 | 'nothing in the footer yet' | 120 | 'nothing in the footer yet' |
test/integration/enable_disable_features_test.rb
| 1 | require "#{File.dirname(__FILE__)}/../test_helper" | 1 | require "#{File.dirname(__FILE__)}/../test_helper" |
| 2 | 2 | ||
| 3 | class EnableDisableFeaturesTest < ActionController::IntegrationTest | 3 | class EnableDisableFeaturesTest < ActionController::IntegrationTest |
| 4 | - fixtures :virtual_communities, :users, :profiles | 4 | + fixtures :domains, :virtual_communities, :users, :profiles |
| 5 | 5 | ||
| 6 | def test_enable_features | 6 | def test_enable_features |
| 7 | uses_host 'anhetegua.net' | 7 | uses_host 'anhetegua.net' |
test/integration/login_to_the_application_test.rb
| @@ -3,17 +3,29 @@ require "#{File.dirname(__FILE__)}/../test_helper" | @@ -3,17 +3,29 @@ require "#{File.dirname(__FILE__)}/../test_helper" | ||
| 3 | class LoginToTheApplicationTest < ActionController::IntegrationTest | 3 | class LoginToTheApplicationTest < ActionController::IntegrationTest |
| 4 | fixtures :users, :virtual_communities, :profiles | 4 | fixtures :users, :virtual_communities, :profiles |
| 5 | 5 | ||
| 6 | - def test_anonymous_sees_login_box | 6 | + def test_anonymous_user_logins_to_application |
| 7 | get '/' | 7 | get '/' |
| 8 | assert_tag :tag => 'div', :attributes => { :id => 'login_box' } | 8 | assert_tag :tag => 'div', :attributes => { :id => 'login_box' } |
| 9 | assert_no_tag :tag => 'div', :attributes => { :id => 'user_links' } | 9 | assert_no_tag :tag => 'div', :attributes => { :id => 'user_links' } |
| 10 | + assert_no_tag :tag => 'div', :attributes => { :id => 'logout_box' } | ||
| 11 | + | ||
| 12 | + get '/account/login' | ||
| 13 | + assert_response :success | ||
| 14 | + | ||
| 15 | + login('ze', 'test') | ||
| 16 | + | ||
| 17 | + assert_no_tag :tag => 'div', :attributes => { :id => 'login_box' } | ||
| 18 | + assert_tag :tag => 'div', :attributes => { :id => 'user_links' } | ||
| 19 | + assert_tag :tag => 'div', :attributes => { :id => 'logout_box' } | ||
| 10 | end | 20 | end |
| 11 | 21 | ||
| 12 | def test_logged_in_does_not_see_login_box | 22 | def test_logged_in_does_not_see_login_box |
| 13 | login('ze', 'test') | 23 | login('ze', 'test') |
| 14 | get '/' | 24 | get '/' |
| 15 | assert_no_tag :tag => 'div', :attributes => { :id => 'login_box' } | 25 | assert_no_tag :tag => 'div', :attributes => { :id => 'login_box' } |
| 26 | + assert_no_tag :tag => 'div', :attributes => { :id => 'register_box' } | ||
| 16 | assert_tag :tag => 'div', :attributes => { :id => 'user_links' } | 27 | assert_tag :tag => 'div', :attributes => { :id => 'user_links' } |
| 28 | + assert_tag :tag => 'div', :attributes => { :id => 'logout_box' } | ||
| 17 | end | 29 | end |
| 18 | 30 | ||
| 19 | end | 31 | end |