Sha256: 213eb745a701fc569e1f0ddbf616b19cf81fa7aa2386707e9323d08d3e9ec221

Contents?: true

Size: 1.92 KB

Versions: 22

Compression:

Stored size: 1.92 KB

Contents

require File.join(File.dirname(__FILE__), *%w[.. .. .. spec_helper])

describe Blather::Stanza::Iq::Query do
  it 'registers itself' do
    Blather::XMPPNode.class_from_registration(:query, nil).must_equal Blather::Stanza::Iq::Query
  end

  it 'can be imported' do
    doc = parse_stanza <<-XML
      <iq from='juliet@example.com/balcony' type='set' id='roster_4'>
        <query>
          <item jid='nurse@example.com' subscription='remove'/>
        </query>
      </iq>
    XML
    Blather::XMPPNode.import(doc.root).must_be_instance_of Blather::Stanza::Iq::Query
  end

  it 'ensures a query node is present on create' do
    query = Blather::Stanza::Iq::Query.new
    query.xpath('query').wont_be_empty
  end

  it 'ensures a query node exists when calling #query' do
    query = Blather::Stanza::Iq::Query.new
    query.remove_child :query
    query.xpath('query').must_be_empty

    query.query.wont_be_nil
    query.xpath('query').wont_be_empty
  end

  [:get, :set, :result, :error].each do |type|
    it "can be set as \"#{type}\"" do
      query = Blather::Stanza::Iq::Query.new type
      query.type.must_equal type
    end
  end

  it 'sets type to "result" on reply' do
    query = Blather::Stanza::Iq::Query.new
    query.type.must_equal :get
    reply = query.reply.type.must_equal :result
  end

  it 'sets type to "result" on reply!' do
    query = Blather::Stanza::Iq::Query.new
    query.type.must_equal :get
    query.reply!
    query.type.must_equal :result
  end

  it 'can be registered under a namespace' do
    class QueryNs < Blather::Stanza::Iq::Query; register :query_ns, nil, 'query:ns'; end
    Blather::XMPPNode.class_from_registration(:query, 'query:ns').must_equal QueryNs
    query_ns = QueryNs.new
    query_ns.xpath('query').must_be_empty
    query_ns.xpath('ns:query', :ns => 'query:ns').size.must_equal 1

    query_ns.query
    query_ns.query
    query_ns.xpath('ns:query', :ns => 'query:ns').size.must_equal 1
  end
end

Version data entries

22 entries across 22 versions & 3 rubygems

Version Path
sprsquish-blather-0.4.0 spec/blather/stanza/iq/query_spec.rb
sprsquish-blather-0.4.1 spec/blather/stanza/iq/query_spec.rb
sprsquish-blather-0.4.2 spec/blather/stanza/iq/query_spec.rb
sprsquish-blather-0.4.3 spec/blather/stanza/iq/query_spec.rb
sprsquish-blather-0.4.4 spec/blather/stanza/iq/query_spec.rb
shingara-blather-0.4.14 spec/blather/stanza/iq/query_spec.rb
blather-0.4.14 spec/blather/stanza/iq/query_spec.rb
blather-0.4.13 spec/blather/stanza/iq/query_spec.rb
blather-0.4.12 spec/blather/stanza/iq/query_spec.rb
blather-0.4.11 spec/blather/stanza/iq/query_spec.rb
blather-0.4.10 spec/blather/stanza/iq/query_spec.rb
shingara-blather-0.4.9 spec/blather/stanza/iq/query_spec.rb
shingara-blather-0.4.8 spec/blather/stanza/iq/query_spec.rb
blather-0.4.8 spec/blather/stanza/iq/query_spec.rb
blather-0.4.7 spec/blather/stanza/iq/query_spec.rb
blather-0.4.6 spec/blather/stanza/iq/query_spec.rb
blather-0.4.5 spec/blather/stanza/iq/query_spec.rb
blather-0.4.4 spec/blather/stanza/iq/query_spec.rb
blather-0.4.3 spec/blather/stanza/iq/query_spec.rb
blather-0.4.0 spec/blather/stanza/iq/query_spec.rb