Mercurial > hg > soundsoftware-site
comparison test/functional/mail_handler_controller_test.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | cbb26bc654de |
children | 622f24f53b42 |
comparison
equal
deleted
inserted
replaced
929:5f33065ddc4b | 1115:433d4f72a19b |
---|---|
1 # Redmine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2011 Jean-Philippe Lang | 2 # Copyright (C) 2006-2012 Jean-Philippe Lang |
3 # | 3 # |
4 # This program is free software; you can redistribute it and/or | 4 # This program is free software; you can redistribute it and/or |
5 # modify it under the terms of the GNU General Public License | 5 # modify it under the terms of the GNU General Public License |
6 # as published by the Free Software Foundation; either version 2 | 6 # as published by the Free Software Foundation; either version 2 |
7 # of the License, or (at your option) any later version. | 7 # of the License, or (at your option) any later version. |
20 | 20 |
21 # Re-raise errors caught by the controller. | 21 # Re-raise errors caught by the controller. |
22 class MailHandlerController; def rescue_action(e) raise e end; end | 22 class MailHandlerController; def rescue_action(e) raise e end; end |
23 | 23 |
24 class MailHandlerControllerTest < ActionController::TestCase | 24 class MailHandlerControllerTest < ActionController::TestCase |
25 fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations | 25 fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, |
26 :trackers, :projects_trackers, :enumerations | |
26 | 27 |
27 FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler' | 28 FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler' |
28 | 29 |
29 def setup | 30 def setup |
30 @controller = MailHandlerController.new | 31 @controller = MailHandlerController.new |
36 def test_should_create_issue | 37 def test_should_create_issue |
37 # Enable API and set a key | 38 # Enable API and set a key |
38 Setting.mail_handler_api_enabled = 1 | 39 Setting.mail_handler_api_enabled = 1 |
39 Setting.mail_handler_api_key = 'secret' | 40 Setting.mail_handler_api_key = 'secret' |
40 | 41 |
41 post :index, :key => 'secret', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | 42 assert_difference 'Issue.count' do |
43 post :index, :key => 'secret', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | |
44 end | |
42 assert_response 201 | 45 assert_response 201 |
43 end | 46 end |
44 | 47 |
45 def test_should_not_allow | 48 def test_should_respond_with_422_if_not_created |
49 Project.find('onlinestore').destroy | |
50 | |
51 Setting.mail_handler_api_enabled = 1 | |
52 Setting.mail_handler_api_key = 'secret' | |
53 | |
54 assert_no_difference 'Issue.count' do | |
55 post :index, :key => 'secret', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | |
56 end | |
57 assert_response 422 | |
58 end | |
59 | |
60 def test_should_not_allow_with_api_disabled | |
46 # Disable API | 61 # Disable API |
47 Setting.mail_handler_api_enabled = 0 | 62 Setting.mail_handler_api_enabled = 0 |
48 Setting.mail_handler_api_key = 'secret' | 63 Setting.mail_handler_api_key = 'secret' |
49 | 64 |
50 post :index, :key => 'secret', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | 65 assert_no_difference 'Issue.count' do |
66 post :index, :key => 'secret', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | |
67 end | |
68 assert_response 403 | |
69 end | |
70 | |
71 def test_should_not_allow_with_wrong_key | |
72 # Disable API | |
73 Setting.mail_handler_api_enabled = 1 | |
74 Setting.mail_handler_api_key = 'secret' | |
75 | |
76 assert_no_difference 'Issue.count' do | |
77 post :index, :key => 'wrong', :email => IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | |
78 end | |
51 assert_response 403 | 79 assert_response 403 |
52 end | 80 end |
53 end | 81 end |