Skip to content

Commit

Permalink
Added test coverage to chat command
Browse files Browse the repository at this point in the history
  • Loading branch information
chris-teague committed Nov 23, 2012
1 parent e88a5ad commit d3f6910
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
16 changes: 12 additions & 4 deletions lib/fsr/cmd/chat.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,19 @@ class Chat < Command
attr_reader :fs_socket

def initialize(fs_socket = nil, args = {})

raise(ArgumentError, "args (Passed: <<<#{args}>>>) must be a hash") unless args.kind_of?(Hash)

@fs_socket = fs_socket # FSR::CommandSocket obj
@protocol = args[:protocol] ? args[:protocol] : 'sip'
@from = '1001'
@to = '[email protected]'
@message = 'Oh, hello!'
raise(ArgumentError, "Cannot send chat with invalid protocol") unless @protocol.to_s.size > 0
@from = args[:from] # i.e. [email protected]
raise(ArgumentError, "Cannot send chat without :from set") unless @from.to_s.size > 0
@to = args[:to] # i.e. [email protected]
raise(ArgumentError, "Cannot send chat without :to set") unless @to.to_s.size > 0
@message = args[:message]
raise(ArgumentError, "Cannot send chat without :message set") unless @message.to_s.size > 0
@message.gsub!('|', '\|')
end

# Send the command to the event socket, using api by default.
Expand All @@ -26,6 +34,6 @@ def raw
end
end

register(:chat, Chat)
register(:chat, Chat)
end
end
6 changes: 3 additions & 3 deletions spec/fsr/cmd/chat.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@
end

it "Honours a more complex message" do
chat = FSR::Cmd::Chat.new(nil, :message => 'Hello, friendly sir. fƒø£0"f', :to => '[email protected]', :from => '1001')
chat.raw.should == %Q(chat sip|1001|[email protected]|Hello, friendly sir. fƒø£0"f)
chat = FSR::Cmd::Chat.new(nil, :message => 'Hello, friendly sir. "*/;{(\|/;,@#,/', :to => '[email protected]', :from => '1001')
chat.raw.should == 'chat sip|1001|[email protected]|Hello, friendly sir. "*/;{(\\\|/;,@#,/'
end

it "Escapes pipes from messages" do
chat = FSR::Cmd::Chat.new(nil, :message => 'He||o there |ove|y', :to => '[email protected]', :from => '1001')
chat.raw.should == "chat sip|1001|[email protected]|He\|\|o there \|ove\|y"
chat.raw.should == %Q(chat sip|1001|[email protected]|He\\|\\|o there \\|ove\\|y)
end

end
2 changes: 1 addition & 1 deletion spec/fsr/loading.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

# When you add commands you must modify the expected cmds_loaded behavior
it "Loads all commands" do
all_commands = [:kill, :uuid_dump, :originate, :sofia, :fsctl, :sofia_contact, :status, :calls, :call_center, :channels, :enum, :sched_hangup, :sched_transfer, :uuid_transfer, :uuid_send_dtmf, :conference, :valet_info] # If you add a command add it to this set
all_commands = [:kill, :uuid_dump, :originate, :chat, :sofia, :fsctl, :sofia_contact, :status, :calls, :call_center, :channels, :enum, :sched_hangup, :sched_transfer, :uuid_transfer, :uuid_send_dtmf, :conference, :valet_info] # If you add a command add it to this set
cmds_loaded = FSR.load_all_commands
cmds_loaded.kind_of?(Array).should == true
all_commands.each do |cmd|
Expand Down

0 comments on commit d3f6910

Please sign in to comment.