File: test_stomp.rb

package info (click to toggle)
ruby-eventmachine 1.0.3-6%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 2,000 kB
  • ctags: 3,178
  • sloc: ruby: 8,641; cpp: 5,217; java: 827; makefile: 5
file content (37 lines) | stat: -rw-r--r-- 953 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require 'em_test_helper'

class TestStomp < Test::Unit::TestCase
  CONTENT_LENGTH_REGEX = /^content-length: (\d+)$/

  def bytesize(str)
    str = str.to_s
    size = str.bytesize if str.respond_to?(:bytesize) # bytesize added in 1.9
    size || str.size
  end

  def test_content_length_in_bytes
    connection = Object.new
    connection.instance_eval do 
      extend EM::P::Stomp

      def last_sent_content_length
        @sent && Integer(@sent[CONTENT_LENGTH_REGEX, 1])
      end

      def send_data(string)
        @sent = string
      end
    end

    queue = "queue"
    failure_message = "header content-length is not the byte size of last sent body"

    body = "test"
    connection.send queue, body
    assert_equal bytesize(body), connection.last_sent_content_length, failure_message

    body = "test\u221A"
    connection.send queue, body
    assert_equal bytesize(body), connection.last_sent_content_length, failure_message
  end
end