diff --git a/lib/blather/stanza/presence/muc_user.rb b/lib/blather/stanza/presence/muc_user.rb index 35da4ba3..b1a966a0 100644 --- a/lib/blather/stanza/presence/muc_user.rb +++ b/lib/blather/stanza/presence/muc_user.rb @@ -61,7 +61,7 @@ def password=(var) end def invite? - !!invite + !!find_invite_node end def muc_user @@ -99,7 +99,7 @@ def find_password_node end def invite - if invite = muc_user.find_first('ns:invite', :ns => self.class.registered_ns) + if invite = find_invite_node Invite.new invite else muc_user << (invite = Invite.new nil, nil, nil, self.document) @@ -107,6 +107,10 @@ def invite end end + def find_invite_node + muc_user.find_first 'ns:invite', :ns => self.class.registered_ns + end + class Item < XMPPNode def self.new(affiliation = nil, role = nil, jid = nil, document = nil) new_node = super :item, document diff --git a/spec/blather/stanza/presence/muc_user_spec.rb b/spec/blather/stanza/presence/muc_user_spec.rb index e08f614c..2e1aa5b8 100644 --- a/spec/blather/stanza/presence/muc_user_spec.rb +++ b/spec/blather/stanza/presence/muc_user_spec.rb @@ -102,6 +102,11 @@ def muc_invite_xml muc_user.password.must_equal 'hello_world' end + it "should not be an #invite?" do + muc_user = Blather::Stanza::Presence::MUCUser.new + muc_user.invite?.must_equal false + end + describe "with an invite element" do it "should be an #invite?" do muc_user = Blather::XMPPNode.import(parse_stanza(muc_invite_xml).root)