blather 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. data/.rspec +3 -0
  2. data/.travis.yml +1 -8
  3. data/CHANGELOG.md +230 -0
  4. data/Guardfile +4 -4
  5. data/README.md +2 -8
  6. data/Rakefile +14 -27
  7. data/blather.gemspec +8 -18
  8. data/lib/blather.rb +1 -0
  9. data/lib/blather/client/client.rb +8 -0
  10. data/lib/blather/roster.rb +7 -0
  11. data/lib/blather/stanza/iq/roster.rb +1 -1
  12. data/lib/blather/stanza/message/muc_user.rb +2 -0
  13. data/lib/blather/stanza/muc/muc_user_base.rb +4 -3
  14. data/lib/blather/stanza/presence.rb +12 -14
  15. data/lib/blather/stanza/presence/c.rb +58 -62
  16. data/lib/blather/stanza/presence/muc.rb +14 -10
  17. data/lib/blather/stanza/presence/muc_user.rb +47 -36
  18. data/lib/blather/stanza/presence/status.rb +106 -101
  19. data/lib/blather/stanza/presence/subscription.rb +59 -60
  20. data/lib/blather/stream.rb +1 -3
  21. data/lib/blather/stream/features/resource.rb +0 -1
  22. data/lib/blather/version.rb +1 -2
  23. data/lib/blather/xmpp_node.rb +24 -3
  24. data/spec/blather/client/client_spec.rb +64 -64
  25. data/spec/blather/client/dsl/pubsub_spec.rb +127 -127
  26. data/spec/blather/client/dsl_spec.rb +11 -11
  27. data/spec/blather/errors/sasl_error_spec.rb +3 -3
  28. data/spec/blather/errors/stanza_error_spec.rb +26 -26
  29. data/spec/blather/errors/stream_error_spec.rb +22 -22
  30. data/spec/blather/errors_spec.rb +7 -7
  31. data/spec/blather/file_transfer_spec.rb +16 -18
  32. data/spec/blather/jid_spec.rb +29 -29
  33. data/spec/blather/roster_item_spec.rb +18 -18
  34. data/spec/blather/roster_spec.rb +18 -18
  35. data/spec/blather/stanza/discos/disco_info_spec.rb +56 -57
  36. data/spec/blather/stanza/discos/disco_items_spec.rb +33 -33
  37. data/spec/blather/stanza/iq/command_spec.rb +57 -57
  38. data/spec/blather/stanza/iq/ibb_spec.rb +27 -39
  39. data/spec/blather/stanza/iq/ping_spec.rb +13 -9
  40. data/spec/blather/stanza/iq/query_spec.rb +16 -16
  41. data/spec/blather/stanza/iq/roster_spec.rb +29 -30
  42. data/spec/blather/stanza/iq/s5b_spec.rb +10 -13
  43. data/spec/blather/stanza/iq/si_spec.rb +20 -23
  44. data/spec/blather/stanza/iq/vcard_spec.rb +22 -25
  45. data/spec/blather/stanza/iq_spec.rb +12 -12
  46. data/spec/blather/stanza/message/muc_user_spec.rb +36 -36
  47. data/spec/blather/stanza/message_spec.rb +56 -56
  48. data/spec/blather/stanza/presence/c_spec.rb +17 -7
  49. data/spec/blather/stanza/presence/muc_spec.rb +8 -8
  50. data/spec/blather/stanza/presence/muc_user_spec.rb +23 -23
  51. data/spec/blather/stanza/presence/status_spec.rb +42 -30
  52. data/spec/blather/stanza/presence/subscription_spec.rb +22 -23
  53. data/spec/blather/stanza/presence_spec.rb +72 -34
  54. data/spec/blather/stanza/pubsub/affiliations_spec.rb +12 -12
  55. data/spec/blather/stanza/pubsub/create_spec.rb +10 -10
  56. data/spec/blather/stanza/pubsub/event_spec.rb +31 -31
  57. data/spec/blather/stanza/pubsub/items_spec.rb +21 -21
  58. data/spec/blather/stanza/pubsub/publish_spec.rb +21 -21
  59. data/spec/blather/stanza/pubsub/retract_spec.rb +20 -20
  60. data/spec/blather/stanza/pubsub/subscribe_spec.rb +17 -17
  61. data/spec/blather/stanza/pubsub/subscription_spec.rb +28 -28
  62. data/spec/blather/stanza/pubsub/subscriptions_spec.rb +11 -11
  63. data/spec/blather/stanza/pubsub/unsubscribe_spec.rb +22 -22
  64. data/spec/blather/stanza/pubsub_owner/delete_spec.rb +9 -9
  65. data/spec/blather/stanza/pubsub_owner/purge_spec.rb +9 -9
  66. data/spec/blather/stanza/pubsub_owner_spec.rb +6 -6
  67. data/spec/blather/stanza/pubsub_spec.rb +16 -16
  68. data/spec/blather/stanza/x_spec.rb +53 -53
  69. data/spec/blather/stanza_spec.rb +39 -39
  70. data/spec/blather/stream/client_spec.rb +133 -133
  71. data/spec/blather/stream/component_spec.rb +7 -7
  72. data/spec/blather/stream/parser_spec.rb +24 -24
  73. data/spec/blather/stream/ssl_spec.rb +7 -7
  74. data/spec/blather/xmpp_node_spec.rb +17 -7
  75. data/spec/blather_spec.rb +4 -4
  76. data/spec/spec_helper.rb +6 -54
  77. metadata +53 -68
  78. data/CHANGELOG +0 -220
@@ -2,44 +2,44 @@ require 'spec_helper'
2
2
 
3
3
  describe Blather::Stanza::Iq do
4
4
  it 'registers itself' do
5
- Blather::XMPPNode.class_from_registration(:iq, nil).must_equal Blather::Stanza::Iq
5
+ Blather::XMPPNode.class_from_registration(:iq, nil).should == Blather::Stanza::Iq
6
6
  end
7
7
 
8
8
  it 'must be importable' do
9
- doc = parse_stanza "<iq from='juliet@example.com/balcony' type='set' id='roster_4'></iq>"
10
- Blather::XMPPNode.import(doc.root).must_be_instance_of Blather::Stanza::Iq
9
+ string = "<iq from='juliet@example.com/balcony' type='set' id='roster_4'></iq>"
10
+ Blather::XMPPNode.parse(string).should be_instance_of Blather::Stanza::Iq
11
11
  end
12
12
 
13
13
  it 'creates a new Iq stanza defaulted as a get' do
14
- Blather::Stanza::Iq.new.type.must_equal :get
14
+ Blather::Stanza::Iq.new.type.should == :get
15
15
  end
16
16
 
17
17
  it 'sets the id when created' do
18
- Blather::Stanza::Iq.new.id.wont_be_nil
18
+ Blather::Stanza::Iq.new.id.should_not be_nil
19
19
  end
20
20
 
21
21
  it 'creates a new Stanza::Iq object on import' do
22
- Blather::Stanza::Iq.import(Blather::XMPPNode.new('iq')).must_be_kind_of Blather::Stanza::Iq
22
+ Blather::Stanza::Iq.import(Blather::XMPPNode.new('iq')).should be_kind_of Blather::Stanza::Iq
23
23
  end
24
24
 
25
25
  it 'creates a proper object based on its children' do
26
26
  n = Blather::XMPPNode.new('iq')
27
27
  n << Blather::XMPPNode.new('query', n.document)
28
- Blather::Stanza::Iq.import(n).must_be_kind_of Blather::Stanza::Iq::Query
28
+ Blather::Stanza::Iq.import(n).should be_kind_of Blather::Stanza::Iq::Query
29
29
  end
30
30
 
31
31
  it 'ensures type is one of Stanza::Iq::VALID_TYPES' do
32
- lambda { Blather::Stanza::Iq.new :invalid_type_name }.must_raise(Blather::ArgumentError)
32
+ lambda { Blather::Stanza::Iq.new :invalid_type_name }.should raise_error(Blather::ArgumentError)
33
33
 
34
34
  Blather::Stanza::Iq::VALID_TYPES.each do |valid_type|
35
35
  n = Blather::Stanza::Iq.new valid_type
36
- n.type.must_equal valid_type
36
+ n.type.should == valid_type
37
37
  end
38
38
  end
39
39
 
40
40
  Blather::Stanza::Iq::VALID_TYPES.each do |valid_type|
41
41
  it "provides a helper (#{valid_type}?) for type #{valid_type}" do
42
- Blather::Stanza::Iq.new.must_respond_to :"#{valid_type}?"
42
+ Blather::Stanza::Iq.new.should respond_to :"#{valid_type}?"
43
43
  end
44
44
  end
45
45
 
@@ -48,7 +48,7 @@ describe Blather::Stanza::Iq do
48
48
  iq.from = 'them@example.com'
49
49
  iq << Blather::XMPPNode.new('query', iq.document)
50
50
  r = iq.reply
51
- r.children.empty?.must_equal true
51
+ r.children.empty?.should == true
52
52
  end
53
53
 
54
54
  it 'does not remove the body when replying if we ask to keep it' do
@@ -56,6 +56,6 @@ describe Blather::Stanza::Iq do
56
56
  iq.from = 'them@example.com'
57
57
  iq << Blather::XMPPNode.new('query', iq.document)
58
58
  r = iq.reply :remove_children => false
59
- r.children.empty?.must_equal false
59
+ r.children.empty?.should == false
60
60
  end
61
61
  end
@@ -38,115 +38,115 @@ end
38
38
  describe 'Blather::Stanza::Message::MUCUser' do
39
39
  it 'ensures a form node is present on create' do
40
40
  c = Blather::Stanza::Message::MUCUser.new
41
- c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).wont_be_empty
41
+ c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).should_not be_empty
42
42
  end
43
43
 
44
44
  it 'ensures a form node exists when calling #muc' do
45
45
  c = Blather::Stanza::Message::MUCUser.new
46
46
  c.remove_children :x
47
- c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).must_be_empty
47
+ c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).should be_empty
48
48
 
49
- c.muc_user.wont_be_nil
50
- c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).wont_be_empty
49
+ c.muc_user.should_not be_nil
50
+ c.xpath('ns:x', :ns => Blather::Stanza::Message::MUCUser.registered_ns).should_not be_empty
51
51
  end
52
52
 
53
53
  it 'ensures the message type is :normal' do
54
54
  m = Blather::Stanza::Message::MUCUser.new
55
- m.normal?.must_equal true
55
+ m.normal?.should == true
56
56
  end
57
57
 
58
58
  it "must be able to set the password" do
59
59
  muc_user = Blather::Stanza::Message::MUCUser.new
60
- muc_user.password.must_equal nil
60
+ muc_user.password.should == nil
61
61
  muc_user.password = 'barbaz'
62
- muc_user.password.must_equal 'barbaz'
62
+ muc_user.password.should == 'barbaz'
63
63
  muc_user.password = 'hello_world'
64
- muc_user.password.must_equal 'hello_world'
64
+ muc_user.password.should == 'hello_world'
65
65
  end
66
66
 
67
67
  it "should not be an #invite?" do
68
68
  muc_user = Blather::Stanza::Message::MUCUser.new
69
- muc_user.invite?.must_equal false
69
+ muc_user.invite?.should == false
70
70
  end
71
71
 
72
72
  describe "with an invite element" do
73
73
  it "should be an #invite?" do
74
- muc_user = Blather::XMPPNode.import(parse_stanza(muc_invite_xml).root)
75
- muc_user.invite?.must_equal true
74
+ muc_user = Blather::XMPPNode.parse(muc_invite_xml)
75
+ muc_user.invite?.should == true
76
76
  end
77
77
 
78
78
  it "should know the invite attributes properly" do
79
- muc_user = Blather::XMPPNode.import(parse_stanza(muc_invite_xml).root)
80
- muc_user.must_be_instance_of Blather::Stanza::Message::MUCUser
79
+ muc_user = Blather::XMPPNode.parse(muc_invite_xml)
80
+ muc_user.should be_instance_of Blather::Stanza::Message::MUCUser
81
81
  invite = muc_user.invite
82
- invite.to.must_equal 'hecate@shakespeare.lit'
83
- invite.from.must_equal 'crone1@shakespeare.lit/desktop'
84
- invite.reason.must_equal 'Hey Hecate, this is the place for all good witches!'
85
- muc_user.password.must_equal 'foobar'
82
+ invite.to.should == 'hecate@shakespeare.lit'
83
+ invite.from.should == 'crone1@shakespeare.lit/desktop'
84
+ invite.reason.should == 'Hey Hecate, this is the place for all good witches!'
85
+ muc_user.password.should == 'foobar'
86
86
  end
87
87
 
88
88
  it "must be able to set the to jid" do
89
89
  muc_user = Blather::Stanza::Message::MUCUser.new
90
90
  invite = muc_user.invite
91
- invite.to.must_equal nil
91
+ invite.to.should == nil
92
92
  invite.to = 'foo@bar.com'
93
- invite.to.must_equal 'foo@bar.com'
93
+ invite.to.should == 'foo@bar.com'
94
94
  end
95
95
 
96
96
  it "must be able to set the from jid" do
97
97
  muc_user = Blather::Stanza::Message::MUCUser.new
98
98
  invite = muc_user.invite
99
- invite.from.must_equal nil
99
+ invite.from.should == nil
100
100
  invite.from = 'foo@bar.com'
101
- invite.from.must_equal 'foo@bar.com'
101
+ invite.from.should == 'foo@bar.com'
102
102
  end
103
103
 
104
104
  it "must be able to set the reason" do
105
105
  muc_user = Blather::Stanza::Message::MUCUser.new
106
106
  invite = muc_user.invite
107
- invite.reason.must_equal ''
107
+ invite.reason.should == ''
108
108
  invite.reason = 'Please join'
109
- invite.reason.must_equal 'Please join'
109
+ invite.reason.should == 'Please join'
110
110
  end
111
111
  end
112
112
 
113
113
  describe "with a decline element" do
114
114
  it "should be an #invite_decline?" do
115
- muc_user = Blather::XMPPNode.import(parse_stanza(muc_decline_xml).root)
116
- muc_user.must_be_instance_of Blather::Stanza::Message::MUCUser
117
- muc_user.invite_decline?.must_equal true
115
+ muc_user = Blather::XMPPNode.parse(muc_decline_xml)
116
+ muc_user.should be_instance_of Blather::Stanza::Message::MUCUser
117
+ muc_user.invite_decline?.should == true
118
118
  end
119
119
 
120
120
  it "should know the decline attributes properly" do
121
- muc_user = Blather::XMPPNode.import(parse_stanza(muc_decline_xml).root)
121
+ muc_user = Blather::XMPPNode.parse(muc_decline_xml)
122
122
  decline = muc_user.decline
123
- decline.to.must_equal 'crone1@shakespeare.lit'
124
- decline.from.must_equal 'hecate@shakespeare.lit'
125
- decline.reason.must_equal "Sorry, I'm too busy right now."
123
+ decline.to.should == 'crone1@shakespeare.lit'
124
+ decline.from.should == 'hecate@shakespeare.lit'
125
+ decline.reason.should == "Sorry, I'm too busy right now."
126
126
  end
127
127
 
128
128
  it "must be able to set the to jid" do
129
129
  muc_user = Blather::Stanza::Message::MUCUser.new
130
130
  decline = muc_user.decline
131
- decline.to.must_equal nil
131
+ decline.to.should == nil
132
132
  decline.to = 'foo@bar.com'
133
- decline.to.must_equal 'foo@bar.com'
133
+ decline.to.should == 'foo@bar.com'
134
134
  end
135
135
 
136
136
  it "must be able to set the from jid" do
137
137
  muc_user = Blather::Stanza::Message::MUCUser.new
138
138
  decline = muc_user.decline
139
- decline.from.must_equal nil
139
+ decline.from.should == nil
140
140
  decline.from = 'foo@bar.com'
141
- decline.from.must_equal 'foo@bar.com'
141
+ decline.from.should == 'foo@bar.com'
142
142
  end
143
143
 
144
144
  it "must be able to set the reason" do
145
145
  muc_user = Blather::Stanza::Message::MUCUser.new
146
146
  decline = muc_user.decline
147
- decline.reason.must_equal ''
147
+ decline.reason.should == ''
148
148
  decline.reason = 'Please join'
149
- decline.reason.must_equal 'Please join'
149
+ decline.reason.should == 'Please join'
150
150
  end
151
151
  end
152
152
  end
@@ -70,67 +70,67 @@ end
70
70
 
71
71
  describe Blather::Stanza::Message do
72
72
  it 'registers itself' do
73
- Blather::XMPPNode.class_from_registration(:message, nil).must_equal Blather::Stanza::Message
73
+ Blather::XMPPNode.class_from_registration(:message, nil).should == Blather::Stanza::Message
74
74
  end
75
75
 
76
76
  it 'must be importable' do
77
- Blather::XMPPNode.import(parse_stanza(message_xml).root).must_be_instance_of Blather::Stanza::Message
78
- Blather::XMPPNode.import(parse_stanza(ichat_message_xml).root).must_be_instance_of Blather::Stanza::Message
77
+ Blather::XMPPNode.parse(message_xml).should be_instance_of Blather::Stanza::Message
78
+ Blather::XMPPNode.parse(ichat_message_xml).should be_instance_of Blather::Stanza::Message
79
79
  end
80
80
 
81
81
  it 'provides "attr_accessor" for body' do
82
82
  s = Blather::Stanza::Message.new
83
- s.body.must_be_nil
84
- s.find('body').must_be_empty
83
+ s.body.should be_nil
84
+ s.find('body').should be_empty
85
85
 
86
86
  s.body = 'test message'
87
- s.body.wont_be_nil
88
- s.find('body').wont_be_empty
87
+ s.body.should_not be_nil
88
+ s.find('body').should_not be_empty
89
89
  end
90
90
 
91
91
  it 'provides "attr_accessor" for subject' do
92
92
  s = Blather::Stanza::Message.new
93
- s.subject.must_be_nil
94
- s.find('subject').must_be_empty
93
+ s.subject.should be_nil
94
+ s.find('subject').should be_empty
95
95
 
96
96
  s.subject = 'test subject'
97
- s.subject.wont_be_nil
98
- s.find('subject').wont_be_empty
97
+ s.subject.should_not be_nil
98
+ s.find('subject').should_not be_empty
99
99
  end
100
100
 
101
101
  it 'provides "attr_accessor" for thread' do
102
102
  s = Blather::Stanza::Message.new
103
- s.thread.must_be_nil
104
- s.find('thread').must_be_empty
103
+ s.thread.should be_nil
104
+ s.find('thread').should be_empty
105
105
 
106
106
  s.thread = 1234
107
- s.thread.wont_be_nil
108
- s.find('thread').wont_be_empty
107
+ s.thread.should_not be_nil
108
+ s.find('thread').should_not be_empty
109
109
  end
110
110
 
111
111
  it 'can set a parent attribute for thread' do
112
112
  s = Blather::Stanza::Message.new
113
- s.thread.must_be_nil
114
- s.find('thread').must_be_empty
113
+ s.thread.should be_nil
114
+ s.find('thread').should be_empty
115
115
 
116
116
  s.thread = {4321 => 1234}
117
- s.thread.must_equal '1234'
118
- s.parent_thread.must_equal '4321'
119
- s.find('thread[@parent="4321"]').wont_be_empty
117
+ s.thread.should == '1234'
118
+ s.parent_thread.should == '4321'
119
+ s.find('thread[@parent="4321"]').should_not be_empty
120
120
  end
121
121
 
122
122
  it 'ensures type is one of Blather::Stanza::Message::VALID_TYPES' do
123
- lambda { Blather::Stanza::Message.new nil, nil, :invalid_type_name }.must_raise(Blather::ArgumentError)
123
+ lambda { Blather::Stanza::Message.new nil, nil, :invalid_type_name }.should raise_error(Blather::ArgumentError)
124
124
 
125
125
  Blather::Stanza::Message::VALID_TYPES.each do |valid_type|
126
126
  msg = Blather::Stanza::Message.new nil, nil, valid_type
127
- msg.type.must_equal valid_type
127
+ msg.type.should == valid_type
128
128
  end
129
129
  end
130
130
 
131
131
  Blather::Stanza::Message::VALID_TYPES.each do |valid_type|
132
132
  it "provides a helper (#{valid_type}?) for type #{valid_type}" do
133
- Blather::Stanza::Message.new.must_respond_to :"#{valid_type}?"
133
+ Blather::Stanza::Message.new.should respond_to :"#{valid_type}?"
134
134
  end
135
135
  end
136
136
 
@@ -140,10 +140,10 @@ describe Blather::Stanza::Message do
140
140
  {:html_ns => Blather::Stanza::Message::HTML_NS}
141
141
  ]
142
142
  msg = Blather::Stanza::Message.new
143
- msg.find_first(*search_args).must_be_nil
143
+ msg.find_first(*search_args).should be_nil
144
144
 
145
145
  msg.xhtml_node
146
- msg.find_first(*search_args).wont_be_nil
146
+ msg.find_first(*search_args).should_not be_nil
147
147
  end
148
148
 
149
149
  it 'ensures a body node exists when asked for xhtml_node' do
@@ -153,10 +153,10 @@ describe Blather::Stanza::Message do
153
153
  :body_ns => Blather::Stanza::Message::HTML_BODY_NS}
154
154
  ]
155
155
  msg = Blather::Stanza::Message.new
156
- msg.find_first(*search_args).must_be_nil
156
+ msg.find_first(*search_args).should be_nil
157
157
 
158
158
  msg.xhtml_node
159
- msg.find_first(*search_args).wont_be_nil
159
+ msg.find_first(*search_args).should_not be_nil
160
160
  end
161
161
 
162
162
  it 'returns an existing node when asked for xhtml_node' do
@@ -167,46 +167,46 @@ describe Blather::Stanza::Message do
167
167
  b.namespace = Blather::Stanza::Message::HTML_BODY_NS
168
168
  h << b
169
169
 
170
- msg.xhtml_node.must_equal(b)
170
+ msg.xhtml_node.should ==(b)
171
171
  end
172
172
 
173
173
  it 'has an xhtml setter' do
174
174
  msg = Blather::Stanza::Message.new
175
175
  xhtml = "<some>xhtml</some>"
176
176
  msg.xhtml = xhtml
177
- msg.xhtml_node.inner_html.strip.must_equal(xhtml)
177
+ msg.xhtml_node.inner_html.strip.should ==(xhtml)
178
178
  end
179
179
 
180
180
  it 'sets valid xhtml even if the input is not valid' do
181
181
  msg = Blather::Stanza::Message.new
182
182
  xhtml = "<some>xhtml"
183
183
  msg.xhtml = xhtml
184
- msg.xhtml_node.inner_html.strip.must_equal("<some>xhtml</some>")
184
+ msg.xhtml_node.inner_html.strip.should ==("<some>xhtml</some>")
185
185
  end
186
186
 
187
187
  it 'sets xhtml with more than one root node' do
188
188
  msg = Blather::Stanza::Message.new
189
189
  xhtml = "<i>xhtml</i> more xhtml"
190
190
  msg.xhtml = xhtml
191
- msg.xhtml_node.inner_html.strip.must_equal("<i>xhtml</i> more xhtml")
191
+ msg.xhtml_node.inner_html.strip.should ==("<i>xhtml</i> more xhtml")
192
192
  end
193
193
 
194
194
  it 'has an xhtml getter' do
195
195
  msg = Blather::Stanza::Message.new
196
196
  xhtml = "<some>xhtml</some>"
197
197
  msg.xhtml = xhtml
198
- msg.xhtml.must_equal(xhtml)
198
+ msg.xhtml.should ==(xhtml)
199
199
  end
200
200
 
201
201
  it 'finds xhtml body when html wrapper has wrong namespace' do
202
- msg = Blather::XMPPNode.import(parse_stanza(ichat_message_xml).root)
203
- msg.xhtml.must_equal "<span style=\"font-family: 'Arial';font-size: 12px;color: #262626;\">Hello</span>\n <img alt=\"f5ad3a04d218d7160fa02415e02d41b3.jpg\" src=\"message-attachments:1\" width=\"30\" height=\"30\"></img>"
202
+ msg = Blather::XMPPNode.parse(ichat_message_xml)
203
+ msg.xhtml.should == "<span style=\"font-family: 'Arial';font-size: 12px;color: #262626;\">Hello</span>\n <img alt=\"f5ad3a04d218d7160fa02415e02d41b3.jpg\" src=\"message-attachments:1\" width=\"30\" height=\"30\"></img>"
204
204
  end
205
205
 
206
206
  it 'has a chat state setter' do
207
207
  msg = Blather::Stanza::Message.new
208
208
  msg.chat_state = :composing
209
- msg.xpath('ns:composing', :ns => Blather::Stanza::Message::CHAT_STATE_NS).wont_be_empty
209
+ msg.xpath('ns:composing', :ns => Blather::Stanza::Message::CHAT_STATE_NS).should_not be_empty
210
210
  end
211
211
 
212
212
  it 'will only add one chat state at a time' do
@@ -214,69 +214,69 @@ describe Blather::Stanza::Message do
214
214
  msg.chat_state = :composing
215
215
  msg.chat_state = :paused
216
216
 
217
- msg.xpath('ns:*', :ns => Blather::Stanza::Message::CHAT_STATE_NS).size.must_equal(1)
217
+ msg.xpath('ns:*', :ns => Blather::Stanza::Message::CHAT_STATE_NS).size.should ==(1)
218
218
  end
219
219
 
220
220
  it 'ensures chat state setter accepts strings' do
221
221
  msg = Blather::Stanza::Message.new
222
222
  msg.chat_state = "gone"
223
- msg.xpath('ns:gone', :ns => Blather::Stanza::Message::CHAT_STATE_NS).wont_be_empty
223
+ msg.xpath('ns:gone', :ns => Blather::Stanza::Message::CHAT_STATE_NS).should_not be_empty
224
224
  end
225
225
 
226
226
  it 'ensures chat state is one of Blather::Stanza::Message::VALID_CHAT_STATES' do
227
227
  lambda do
228
228
  msg = Blather::Stanza::Message.new
229
229
  msg.chat_state = :invalid_chat_state
230
- end.must_raise(Blather::ArgumentError)
230
+ end.should raise_error(Blather::ArgumentError)
231
231
 
232
232
  Blather::Stanza::Message::VALID_CHAT_STATES.each do |valid_chat_state|
233
233
  msg = Blather::Stanza::Message.new
234
234
  msg.chat_state = valid_chat_state
235
- msg.chat_state.must_equal valid_chat_state
235
+ msg.chat_state.should == valid_chat_state
236
236
  end
237
237
  end
238
238
 
239
239
  it 'has a chat state getter' do
240
240
  msg = Blather::Stanza::Message.new
241
241
  msg.chat_state = :paused
242
- msg.chat_state.must_equal(:paused)
242
+ msg.chat_state.should ==(:paused)
243
243
  end
244
244
 
245
245
  it 'imports correct chat state' do
246
- Blather::XMPPNode.import(parse_stanza(message_xml).root).chat_state.must_equal :paused
246
+ Blather::XMPPNode.parse(message_xml).chat_state.should == :paused
247
247
  end
248
248
 
249
249
  it 'makes a form child available' do
250
- n = Blather::XMPPNode.import(parse_stanza(message_xml).root)
251
- n.form.fields.size.must_equal 1
252
- n.form.fields.map { |f| f.class }.uniq.must_equal [Blather::Stanza::X::Field]
253
- n.form.must_be_instance_of Blather::Stanza::X
250
+ n = Blather::XMPPNode.parse(message_xml)
251
+ n.form.fields.size.should == 1
252
+ n.form.fields.map { |f| f.class }.uniq.should == [Blather::Stanza::X::Field]
253
+ n.form.should be_instance_of Blather::Stanza::X
254
254
 
255
255
  r = Blather::Stanza::Message.new
256
256
  r.form.type = :form
257
- r.form.type.must_equal :form
257
+ r.form.type.should == :form
258
258
  end
259
259
 
260
260
  it 'ensures the form child is a direct child' do
261
261
  r = Blather::Stanza::Message.new
262
262
  r.form
263
- r.xpath('ns:x', :ns => Blather::Stanza::X.registered_ns).wont_be_empty
263
+ r.xpath('ns:x', :ns => Blather::Stanza::X.registered_ns).should_not be_empty
264
264
  end
265
265
 
266
266
  it 'is not delayed' do
267
- n = Blather::XMPPNode.import(parse_stanza(message_xml).root)
268
- n.delay.must_equal nil
269
- n.delayed?.must_equal false
267
+ n = Blather::XMPPNode.parse(message_xml)
268
+ n.delay.should == nil
269
+ n.delayed?.should == false
270
270
  end
271
271
 
272
272
  describe "with a delay" do
273
273
  it "is delayed" do
274
- n = Blather::XMPPNode.import(parse_stanza(delayed_message_xml).root)
275
- n.delayed?.must_equal true
276
- n.delay.must_be_instance_of Blather::Stanza::Message::Delay
277
- n.delay.from.must_equal 'coven@chat.shakespeare.lit'
278
- n.delay.stamp.must_equal Time.utc(2002, 10, 13, 23, 58, 37, 0)
279
- n.delay.description.must_equal "Too slow"
274
+ n = Blather::XMPPNode.parse(delayed_message_xml)
275
+ n.delayed?.should == true
276
+ n.delay.should be_instance_of Blather::Stanza::Message::Delay
277
+ n.delay.from.should == 'coven@chat.shakespeare.lit'
278
+ n.delay.stamp.should == Time.utc(2002, 10, 13, 23, 58, 37, 0)
279
+ n.delay.description.should == "Too slow"
280
280
  end
281
281
  end
282
282
  end