Sha256: f921074a67d34e41d3d915c8d0d81c6e5b71b7540bd52b2a7e1b9c1f4f7ef4d6

Contents?: true

Size: 1.56 KB

Versions: 19

Compression:

Stored size: 1.56 KB

Contents

# encoding: UTF-8

require 'test_helper'

describe Vines::Stream::Component::Handshake do
  subject      { Vines::Stream::Component::Handshake.new(stream) }
  let(:stream) { MiniTest::Mock.new }

  describe 'when invalid element is received' do
    it 'raises a not-authorized stream error' do
      node = node('<message/>')
       -> { subject.node(node) }.must_raise Vines::StreamErrors::NotAuthorized
    end
  end

  describe 'when handshake with no text is received' do
    it 'raises a not-authorized stream error' do
      stream.expect :secret, 'secr3t'
      node = node('<handshake/>')
      -> { subject.node(node) }.must_raise Vines::StreamErrors::NotAuthorized
      stream.verify
    end
  end

  describe 'when handshake with invalid secret is received' do
    it 'raises a not-authorized stream error' do
      stream.expect :secret, 'secr3t'
      node = node('<handshake>bogus</handshake>')
      -> { subject.node(node) }.must_raise Vines::StreamErrors::NotAuthorized
      stream.verify
    end
  end

  describe 'when good handshake is received' do
    let(:router) { MiniTest::Mock.new }

    before do
      router.expect :<<, nil, [stream]
      stream.expect :router, router
      stream.expect :secret, 'secr3t'
      stream.expect :write, nil, ['<handshake/>']
      stream.expect :advance, nil, [Vines::Stream::Component::Ready.new(stream)]
    end

    it 'completes the handshake and advances the stream into the ready state' do
      node = node('<handshake>secr3t</handshake>')
      subject.node(node)
      stream.verify
      router.verify
    end
  end
end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
diaspora-vines-0.2.0.develop.4 test/stream/component/handshake_test.rb
diaspora-vines-0.2.0.develop.3 test/stream/component/handshake_test.rb
diaspora-vines-0.2.0.develop.2 test/stream/component/handshake_test.rb
diaspora-vines-0.2.0.develop.1 test/stream/component/handshake_test.rb
diaspora-vines-0.1.28 test/stream/component/handshake_test.rb
lygneo-vines-0.1.5 test/stream/component/handshake_test.rb
lygneo-vines-0.1.1 test/stream/component/handshake_test.rb
diaspora-vines-0.1.27 test/stream/component/handshake_test.rb
diaspora-vines-0.1.26 test/stream/component/handshake_test.rb
diaspora-vines-0.1.25 test/stream/component/handshake_test.rb
diaspora-vines-0.1.24 test/stream/component/handshake_test.rb
vines-0.4.10 test/stream/component/handshake_test.rb
diaspora-vines-0.1.22 test/stream/component/handshake_test.rb
diaspora-vines-0.1.21 test/stream/component/handshake_test.rb
diaspora-vines-0.1.2 test/stream/component/handshake_test.rb
vines-0.4.9 test/stream/component/handshake_test.rb
vines-0.4.8 test/stream/component/handshake_test.rb
vines-0.4.7 test/stream/component/handshake_test.rb
vines-0.4.6 test/stream/component/handshake_test.rb