-
-
Notifications
You must be signed in to change notification settings - Fork 537
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Isolate SITE_CONFIG in tests using minitest-stub-const
- Loading branch information
Showing
6 changed files
with
130 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
require 'test_helper' | ||
require 'support/stub_site_config_helper' | ||
|
||
class IntegrationsControllerTest < ActionController::TestCase | ||
include StubSiteConfigHelper | ||
|
||
def setup | ||
end | ||
|
@@ -12,58 +14,64 @@ def test_page_load | |
end | ||
|
||
def test_cloudmailin_integration_success | ||
SITE_CONFIG['cloudmailin'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"e85e908fb893394762047c21e54ce248", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response :success | ||
stub_site_config do | ||
SITE_CONFIG['cloudmailin'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"e85e908fb893394762047c21e54ce248", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response :success | ||
end | ||
end | ||
|
||
def test_cloudmailin_integration_invalid_signature | ||
SITE_CONFIG['cloudmailin'] = "12345678901234567890" | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"e85e908fb893394762047c21e54ce248", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response 403 | ||
stub_site_config do | ||
SITE_CONFIG['cloudmailin'] = "12345678901234567890" | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"e85e908fb893394762047c21e54ce248", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response 403 | ||
end | ||
end | ||
|
||
def test_cloudmailin_integration_unknown_address | ||
SITE_CONFIG['cloudmailin'] = "123456789" | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"6d2df0e807bfa9b77d24c31dce6d4515", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response 404 | ||
stub_site_config do | ||
SITE_CONFIG['cloudmailin'] = "123456789" | ||
post :cloudmailin, { | ||
"html"=>"", | ||
"plain"=>"asdasd", | ||
"x_to_header"=>"[\"[email protected]\"]", | ||
"disposable"=>"", | ||
"from"=>"[email protected]", | ||
"signature"=>"6d2df0e807bfa9b77d24c31dce6d4515", | ||
"to"=>"<[email protected]>", | ||
"subject"=>"asd", | ||
"x_cc_header"=>"", | ||
"message"=>"Received: from VMBX103.ihostexchange.net ([192.168.3.3]) by\r\n HUB103.ihostexchange.net ([66.46.182.53]) with mapi; Wed, 5 Oct 2011 17:12:44\r\n -0400\r\nFrom: SMS User <[email protected]>\r\nTo: Tracks <[email protected]>\r\nDate: Wed, 5 Oct 2011 17:12:43 -0400\r\nSubject: asd\r\nThread-Topic: asd\r\nThread-Index: AcyDo4aig2wghvcsTAOkleWqi4t/FQ==\r\nMessage-ID: <[email protected]>\r\nAccept-Language: de-DE, en-US\r\nContent-Language: en-US\r\nX-MS-Has-Attach:\r\nX-MS-TNEF-Correlator:\r\nacceptlanguage: de-DE, en-US\r\nContent-Type: text/plain; charset=\"us-ascii\"\r\nContent-Transfer-Encoding: quoted-printable\r\nMIME-Version: 1.0\r\n\r\nasdasd\r\n" | ||
} | ||
|
||
assert_response 404 | ||
end | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
require 'test_helper' | ||
require 'support/stub_site_config_helper' | ||
|
||
class MailgunControllerTest < ActionController::TestCase | ||
include StubSiteConfigHelper | ||
|
||
def setup | ||
@user = users(:sms_user) | ||
|
@@ -12,55 +14,61 @@ def load_message(filename) | |
end | ||
|
||
def test_mailgun_signature_verifies | ||
SITE_CONFIG['mailgun_api_key'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
stub_site_config do | ||
SITE_CONFIG['mailgun_api_key'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
|
||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message1.txt') | ||
} | ||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message1.txt') | ||
} | ||
|
||
assert_response :success | ||
assert_response :success | ||
end | ||
end | ||
|
||
def test_mailgun_creates_todo_with_mailmap | ||
SITE_CONFIG['mailgun_api_key'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'to' | ||
SITE_CONFIG['mailmap'] = { | ||
'[email protected]' => ['[email protected]', '[email protected]'] | ||
} | ||
stub_site_config do | ||
SITE_CONFIG['mailgun_api_key'] = "123456789" | ||
SITE_CONFIG['email_dispatch'] = 'to' | ||
SITE_CONFIG['mailmap'] = { | ||
'[email protected]' => ['[email protected]', '[email protected]'] | ||
} | ||
|
||
todo_count = Todo.count | ||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message2.txt') | ||
} | ||
todo_count = Todo.count | ||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message2.txt') | ||
} | ||
|
||
assert_response :success | ||
assert_response :success | ||
|
||
assert_equal(todo_count+1, Todo.count) | ||
message_todo = Todo.where(:description => "test").first | ||
assert_not_nil(message_todo) | ||
assert_equal(@inbox, message_todo.context) | ||
assert_equal(@user, message_todo.user) | ||
assert_equal(todo_count+1, Todo.count) | ||
message_todo = Todo.where(:description => "test").first | ||
assert_not_nil(message_todo) | ||
assert_equal(@inbox, message_todo.context) | ||
assert_equal(@user, message_todo.user) | ||
end | ||
end | ||
|
||
def test_mailgun_signature_fails | ||
SITE_CONFIG['mailgun_api_key'] = "invalidkey" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
stub_site_config do | ||
SITE_CONFIG['mailgun_api_key'] = "invalidkey" | ||
SITE_CONFIG['email_dispatch'] = 'from' | ||
|
||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message1.txt') | ||
} | ||
post :mailgun, { | ||
"timestamp" => "1379539674", | ||
"token" => "5km6cwo0e3bfvg78hw4s69znro09xhk1h8u6-s633yasc8hcr5", | ||
"signature" => "da92708b8f2c9dcd7ecdc91d52946c01802833e6683e46fc00b3f081920dd5b1", | ||
"body-mime" => load_message('mailgun_message1.txt') | ||
} | ||
|
||
assert_response 406 | ||
assert_response 406 | ||
end | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
require 'minitest/stub_const' | ||
|
||
module StubSiteConfigHelper | ||
def stub_site_config | ||
Object.stub_const(:SITE_CONFIG, SITE_CONFIG.clone) do | ||
yield | ||
end | ||
end | ||
end |