mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-17 07:40:12 +01:00
improve tests for preferences and fix a pending cucumber step
This commit is contained in:
parent
07b05d01f7
commit
84ad01a6f6
4 changed files with 74 additions and 35 deletions
|
|
@ -291,6 +291,7 @@ module TodosHelper
|
||||||
def update_needs_to_hide_context
|
def update_needs_to_hide_context
|
||||||
return (@remaining_in_context == 0 && (@todo_hidden_state_changed && @todo.hidden?)) ||
|
return (@remaining_in_context == 0 && (@todo_hidden_state_changed && @todo.hidden?)) ||
|
||||||
(@remaining_in_context == 0 && @todo_was_deferred_from_active_state) ||
|
(@remaining_in_context == 0 && @todo_was_deferred_from_active_state) ||
|
||||||
|
(@remaining_in_context == 0 && @tag_was_removed) ||
|
||||||
(@remaining_in_context == 0 && @todo.completed? && !(@original_item_was_deferred || @original_item_was_hidden)) if source_view_is(:tag)
|
(@remaining_in_context == 0 && @todo.completed? && !(@original_item_was_deferred || @original_item_was_hidden)) if source_view_is(:tag)
|
||||||
|
|
||||||
return false if source_view_is_one_of(:project, :calendar)
|
return false if source_view_is_one_of(:project, :calendar)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ Feature: Tagging todos
|
||||||
@selenium
|
@selenium
|
||||||
Scenario: I can add a new todo from tag view with a different tag and it will not be added to the page
|
Scenario: I can add a new todo from tag view with a different tag and it will not be added to the page
|
||||||
When I go to the tag page for "tracks"
|
When I go to the tag page for "tracks"
|
||||||
And I submit a new action with description "prepare release" with tags "release, next" in the context "@pc"
|
And I submit a new action with description "prepare release" and the tags "release, next" in the context "@pc"
|
||||||
Then I should not see "prepare release"
|
Then I should not see "prepare release"
|
||||||
|
|
||||||
@selenium
|
@selenium
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
require File.dirname(__FILE__) + '/../test_helper'
|
||||||
require 'preferences_controller'
|
require 'preferences_controller'
|
||||||
require 'preference'
|
|
||||||
|
|
||||||
# Re-raise errors caught by the controller.
|
# Re-raise errors caught by the controller.
|
||||||
class PreferencesController; def rescue_action(e) raise e end; end
|
class PreferencesController; def rescue_action(e) raise e end; end
|
||||||
|
|
@ -11,34 +10,44 @@ class PreferencesControllerTest < ActionController::TestCase
|
||||||
def setup
|
def setup
|
||||||
assert_equal "test", ENV['RAILS_ENV']
|
assert_equal "test", ENV['RAILS_ENV']
|
||||||
assert_equal "change-me", Tracks::Config.salt
|
assert_equal "change-me", Tracks::Config.salt
|
||||||
@controller = PreferencesController.new
|
|
||||||
@request = ActionController::TestRequest.new
|
|
||||||
@response = ActionController::TestResponse.new
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_preferences
|
test "render_date_format requires login" do
|
||||||
|
get :render_date_format
|
||||||
|
assert_redirected_to :controller => 'login', :action => 'login'
|
||||||
|
end
|
||||||
|
|
||||||
|
test "calling render_date_format returns date" do
|
||||||
|
login_as :admin_user
|
||||||
|
|
||||||
|
get :render_date_format
|
||||||
|
assert_response :success
|
||||||
|
assert_equal I18n.l(Time.zone.now, :format => "%Y-%m-%d"), @response.body
|
||||||
|
|
||||||
|
get(:render_date_format, {:date_format => "%A %Y"})
|
||||||
|
assert_response :success
|
||||||
|
assert_equal I18n.l(Time.zone.now, :format => "%A %Y"), @response.body
|
||||||
|
end
|
||||||
|
|
||||||
|
test "index page requires login" do
|
||||||
get :index # should fail because no login
|
get :index # should fail because no login
|
||||||
assert_redirected_to :controller => 'login', :action => 'login'
|
assert_redirected_to :controller => 'login', :action => 'login'
|
||||||
|
end
|
||||||
|
|
||||||
|
test "index sets prefs and user" do
|
||||||
login_as :admin_user
|
login_as :admin_user
|
||||||
get :index
|
get :index
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal assigns['page_title'], "TRACKS::Preferences"
|
assert_equal assigns['page_title'], "TRACKS::Preferences"
|
||||||
assert_not_nil assigns['prefs']
|
assert_not_nil assigns['prefs']
|
||||||
|
assert_not_nil assigns['user']
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_edit_preferences
|
test "should update preferences" do
|
||||||
get :edit # should fail because no login
|
|
||||||
assert_redirected_to :controller => 'login', :action => 'login'
|
|
||||||
login_as :admin_user
|
login_as :admin_user
|
||||||
get :edit
|
post :update, {
|
||||||
assert_response :success
|
:user => { :first_name => 'Jane', :last_name => 'Doe'},
|
||||||
assert_equal assigns['page_title'], "TRACKS::Edit Preferences"
|
:prefs => { :date_format => "%m-%d-%Y", :week_starts => "0", :show_number_completed => "10", :show_completed_projects_in_sidebar => "false", :show_hidden_contexts_in_sidebar => "false", :staleness_starts => "14", :due_style => "1", :admin_email => "my.email@domain.com" }}
|
||||||
assert_template 'preferences/edit'
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_update_preferences
|
|
||||||
login_as :admin_user
|
|
||||||
post :update, {:user => { :first_name => 'Jane', :last_name => 'Doe'}, :prefs => { :date_format => "%m-%d-%Y", :week_starts => "0", :show_number_completed => "10", :show_completed_projects_in_sidebar => "false", :show_hidden_contexts_in_sidebar => "false", :staleness_starts => "14", :due_style => "1", :admin_email => "my.email@domain.com" }}
|
|
||||||
updated_admin_user = users(:admin_user).reload
|
updated_admin_user = users(:admin_user).reload
|
||||||
assert_not_nil updated_admin_user.preference
|
assert_not_nil updated_admin_user.preference
|
||||||
assert_equal 'Jane', updated_admin_user.first_name
|
assert_equal 'Jane', updated_admin_user.first_name
|
||||||
|
|
@ -46,4 +55,30 @@ class PreferencesControllerTest < ActionController::TestCase
|
||||||
assert_redirected_to :action => 'index'
|
assert_redirected_to :action => 'index'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "should not update password if left empty" do
|
||||||
|
login_as :admin_user
|
||||||
|
|
||||||
|
old_password_hash = users(:admin_user).password
|
||||||
|
|
||||||
|
post :update, {
|
||||||
|
:user => { :first_name => 'Jane', :last_name => 'Doe', :password => "", :password_confirmation => ""},
|
||||||
|
:prefs => { :date_format => "%m-%d-%Y", :week_starts => "0", :show_number_completed => "10", :show_completed_projects_in_sidebar => "false", :show_hidden_contexts_in_sidebar => "false", :staleness_starts => "14", :due_style => "1", :admin_email => "my.email@domain.com" }}
|
||||||
|
|
||||||
|
updated_admin_user = users(:admin_user).reload
|
||||||
|
assert_equal old_password_hash, updated_admin_user.password
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should be able to change authentication type" do
|
||||||
|
assert Tracks::Config.auth_schemes.include?("open_id"), "open_id should be a valid authentication scheme"
|
||||||
|
|
||||||
|
login_as :admin_user
|
||||||
|
|
||||||
|
post :update, {
|
||||||
|
:user => { :first_name => 'Jane', :last_name => 'Doe', :auth_type => "open_id", :open_id_url => "http://test"},
|
||||||
|
:prefs => { :date_format => "%m-%d-%Y", :week_starts => "0", :show_number_completed => "10", :show_completed_projects_in_sidebar => "false", :show_hidden_contexts_in_sidebar => "false", :staleness_starts => "14", :due_style => "1", :admin_email => "my.email@domain.com" }}
|
||||||
|
|
||||||
|
updated_admin_user = users(:admin_user).reload
|
||||||
|
assert_equal "open_id", updated_admin_user.auth_type
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ module Tracks
|
||||||
def self.salt
|
def self.salt
|
||||||
"change-me"
|
"change-me"
|
||||||
end
|
end
|
||||||
|
def self.auth_schemes
|
||||||
|
return ["database","open_id"]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue