diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-03-14 21:17:09 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-03-14 21:17:09 +0000 |
commit | 993b60d61eb927cff21ea0b06c1631eb986f6a51 (patch) | |
tree | 940e5d4f7c08e2e8dfcf02839c63cac8587c44a1 /test | |
parent | 4957752d122388f15738b47b2872465da81a6d32 (diff) | |
download | redmine-993b60d61eb927cff21ea0b06c1631eb986f6a51.tar.gz redmine-993b60d61eb927cff21ea0b06c1631eb986f6a51.zip |
Adds 2 permissions (closes #859):
* edit_time_entries: lets a user edit/delete any time entry
* edit_own_time_entries: lets a user edit/delete its own time entries only
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1249 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/fixtures/roles.yml | 3 | ||||
-rw-r--r-- | test/functional/timelog_controller_test.rb | 45 |
2 files changed, 47 insertions, 1 deletions
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml index c4d417a09..c834828c6 100644 --- a/test/fixtures/roles.yml +++ b/test/fixtures/roles.yml @@ -66,6 +66,8 @@ roles_001: - :view_calendar
- :log_time
- :view_time_entries
+ - :edit_time_entries
+ - :delete_time_entries
- :manage_news
- :comment_news
- :view_documents
@@ -106,6 +108,7 @@ roles_002: - :view_calendar
- :log_time
- :view_time_entries
+ - :edit_own_time_entries
- :manage_news
- :comment_news
- :view_documents
diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb index 4163ce548..66247e569 100644 --- a/test/functional/timelog_controller_test.rb +++ b/test/functional/timelog_controller_test.rb @@ -22,13 +22,56 @@ require 'timelog_controller' class TimelogController; def rescue_action(e) raise e end; end class TimelogControllerTest < Test::Unit::TestCase - fixtures :projects, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses + fixtures :projects, :roles, :members, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses def setup @controller = TimelogController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new end + + def test_create + @request.session[:user_id] = 3 + post :edit, :project_id => 1, + :time_entry => {:comments => 'Some work on TimelogControllerTest', + :activity_id => '10', + :spent_on => '2008-03-14', + :issue_id => '1', + :hours => '7.3'} + assert_redirected_to 'projects/ecookbook/timelog/details' + + i = Issue.find(1) + t = TimeEntry.find_by_comments('Some work on TimelogControllerTest') + assert_not_nil t + assert_equal 7.3, t.hours + assert_equal 3, t.user_id + assert_equal i, t.issue + assert_equal i.project, t.project + end + + def test_update + entry = TimeEntry.find(1) + assert_equal 1, entry.issue_id + assert_equal 2, entry.user_id + + @request.session[:user_id] = 1 + post :edit, :id => 1, + :time_entry => {:issue_id => '2', + :hours => '8'} + assert_redirected_to 'projects/ecookbook/timelog/details' + entry.reload + + assert_equal 8, entry.hours + assert_equal 2, entry.issue_id + assert_equal 2, entry.user_id + end + + def destroy + @request.session[:user_id] = 2 + post :destroy, :id => 1 + assert_redirected_to 'projects/ecookbook/timelog/details' + assert_nil TimeEntry.find_by_id(1) + end def test_report_no_criteria get :report, :project_id => 1 |