2014-05-16 18:03:13 -04:00
|
|
|
require 'test_helper'
|
2008-06-04 18:16:06 -07:00
|
|
|
|
2009-06-02 21:22:50 +02:00
|
|
|
class MessageGatewayTest < ActiveSupport::TestCase
|
2008-06-04 18:16:06 -07:00
|
|
|
|
|
|
|
def setup
|
|
|
|
@user = users(:sms_user)
|
|
|
|
@inbox = contexts(:inbox)
|
|
|
|
end
|
|
|
|
|
|
|
|
def load_message(filename)
|
2012-04-17 16:47:37 +02:00
|
|
|
MessageGateway.receive(File.read(File.join(Rails.root, 'test', 'fixtures', filename)))
|
2008-06-04 18:16:06 -07:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_sms_with_no_subject
|
|
|
|
todo_count = Todo.count
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-06-04 18:16:06 -07:00
|
|
|
load_message('sample_sms.txt')
|
|
|
|
# assert some stuff about it being created
|
|
|
|
assert_equal(todo_count+1, Todo.count)
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2013-05-11 23:13:16 +02:00
|
|
|
message_todo = Todo.where(:description => "message_content").first
|
2008-06-04 18:16:06 -07:00
|
|
|
assert_not_nil(message_todo)
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-06-04 18:16:06 -07:00
|
|
|
assert_equal(@inbox, message_todo.context)
|
|
|
|
assert_equal(@user, message_todo.user)
|
|
|
|
end
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-06-04 18:16:06 -07:00
|
|
|
def test_mms_with_subject
|
|
|
|
todo_count = Todo.count
|
|
|
|
|
|
|
|
load_message('sample_mms.txt')
|
|
|
|
|
|
|
|
# assert some stuff about it being created
|
|
|
|
assert_equal(todo_count+1, Todo.count)
|
|
|
|
|
2013-05-11 23:13:16 +02:00
|
|
|
message_todo = Todo.where(:description => "This is the subject").first
|
2008-06-04 18:16:06 -07:00
|
|
|
assert_not_nil(message_todo)
|
|
|
|
|
|
|
|
assert_equal(@inbox, message_todo.context)
|
|
|
|
assert_equal(@user, message_todo.user)
|
|
|
|
assert_equal("This is the message body", message_todo.notes)
|
|
|
|
end
|
2012-08-24 23:47:27 +02:00
|
|
|
|
|
|
|
def test_email_with_winmail_dat
|
|
|
|
todo_count = Todo.count
|
|
|
|
|
|
|
|
load_message('email_with_winmail.txt')
|
|
|
|
|
|
|
|
# assert some stuff about it being created
|
|
|
|
assert_equal(todo_count+1, Todo.count)
|
|
|
|
end
|
2008-06-07 17:15:12 -07:00
|
|
|
|
2012-08-24 23:47:27 +02:00
|
|
|
def test_email_with_multipart_attachments
|
|
|
|
todo_count = Todo.count
|
|
|
|
|
|
|
|
load_message('email_with_multipart.txt')
|
|
|
|
|
|
|
|
# assert some stuff about it being created
|
|
|
|
assert_equal(todo_count+1, Todo.count)
|
|
|
|
end
|
|
|
|
|
2008-06-07 17:15:12 -07:00
|
|
|
def test_no_user
|
|
|
|
todo_count = Todo.count
|
2012-04-17 16:47:37 +02:00
|
|
|
badmessage = File.read(File.join(Rails.root, 'test', 'fixtures', 'sample_sms.txt'))
|
2008-06-07 17:15:12 -07:00
|
|
|
badmessage.gsub!("5555555555", "notauser")
|
2008-09-20 19:15:12 -07:00
|
|
|
MessageGateway.receive(badmessage)
|
2008-06-07 17:15:12 -07:00
|
|
|
assert_equal(todo_count, Todo.count)
|
|
|
|
end
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-06-14 22:12:13 -07:00
|
|
|
def test_direct_to_context
|
2012-04-17 16:47:37 +02:00
|
|
|
message = File.read(File.join(Rails.root, 'test', 'fixtures', 'sample_sms.txt'))
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-09-21 09:36:32 -07:00
|
|
|
valid_context_msg = message.gsub('message_content', 'this is a task @ anothercontext')
|
|
|
|
invalid_context_msg = message.gsub('message_content', 'this is also a task @ notacontext')
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-09-20 19:15:12 -07:00
|
|
|
MessageGateway.receive(valid_context_msg)
|
2013-05-11 23:13:16 +02:00
|
|
|
valid_context_todo = Todo.where(:description => "this is a task").first
|
2008-06-14 22:12:13 -07:00
|
|
|
assert_not_nil(valid_context_todo)
|
|
|
|
assert_equal(contexts(:anothercontext), valid_context_todo.context)
|
2012-04-24 20:47:07 +02:00
|
|
|
|
2008-09-20 19:15:12 -07:00
|
|
|
MessageGateway.receive(invalid_context_msg)
|
2013-05-11 23:13:16 +02:00
|
|
|
invalid_context_todo = Todo.where(:description => 'this is also a task').first
|
2008-06-14 22:12:13 -07:00
|
|
|
assert_not_nil(invalid_context_todo)
|
|
|
|
assert_equal(@inbox, invalid_context_todo.context)
|
|
|
|
end
|
2008-06-04 18:16:06 -07:00
|
|
|
end
|