blather 1.2.0 → 2.0.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.
- checksums.yaml +5 -5
- data/.travis.yml +7 -7
- data/CHANGELOG.md +8 -0
- data/blather.gemspec +6 -6
- data/lib/blather.rb +1 -1
- data/lib/blather/client/client.rb +30 -6
- data/lib/blather/version.rb +1 -1
- data/spec/blather/client/client_spec.rb +73 -68
- data/spec/blather/client/dsl/pubsub_spec.rb +121 -121
- data/spec/blather/client/dsl_spec.rb +9 -9
- data/spec/blather/errors/sasl_error_spec.rb +3 -3
- data/spec/blather/errors/stanza_error_spec.rb +26 -26
- data/spec/blather/errors/stream_error_spec.rb +22 -22
- data/spec/blather/errors_spec.rb +7 -7
- data/spec/blather/file_transfer_spec.rb +9 -9
- data/spec/blather/jid_spec.rb +29 -29
- data/spec/blather/roster_item_spec.rb +18 -18
- data/spec/blather/roster_spec.rb +18 -18
- data/spec/blather/stanza/discos/disco_info_spec.rb +56 -56
- data/spec/blather/stanza/discos/disco_items_spec.rb +33 -33
- data/spec/blather/stanza/iq/command_spec.rb +51 -51
- data/spec/blather/stanza/iq/ibb_spec.rb +15 -15
- data/spec/blather/stanza/iq/ping_spec.rb +8 -8
- data/spec/blather/stanza/iq/query_spec.rb +15 -15
- data/spec/blather/stanza/iq/roster_spec.rb +29 -29
- data/spec/blather/stanza/iq/s5b_spec.rb +7 -7
- data/spec/blather/stanza/iq/si_spec.rb +17 -17
- data/spec/blather/stanza/iq/vcard_spec.rb +19 -19
- data/spec/blather/stanza/iq_spec.rb +11 -11
- data/spec/blather/stanza/message/muc_user_spec.rb +32 -32
- data/spec/blather/stanza/message_spec.rb +53 -54
- data/spec/blather/stanza/presence/c_spec.rb +11 -11
- data/spec/blather/stanza/presence/muc_spec.rb +7 -7
- data/spec/blather/stanza/presence/muc_user_spec.rb +22 -22
- data/spec/blather/stanza/presence/status_spec.rb +33 -33
- data/spec/blather/stanza/presence/subscription_spec.rb +22 -22
- data/spec/blather/stanza/presence_spec.rb +30 -30
- data/spec/blather/stanza/pubsub/affiliations_spec.rb +11 -11
- data/spec/blather/stanza/pubsub/create_spec.rb +10 -10
- data/spec/blather/stanza/pubsub/event_spec.rb +24 -24
- data/spec/blather/stanza/pubsub/items_spec.rb +20 -20
- data/spec/blather/stanza/pubsub/publish_spec.rb +21 -21
- data/spec/blather/stanza/pubsub/retract_spec.rb +19 -19
- data/spec/blather/stanza/pubsub/subscribe_spec.rb +17 -17
- data/spec/blather/stanza/pubsub/subscription_spec.rb +28 -28
- data/spec/blather/stanza/pubsub/subscriptions_spec.rb +13 -13
- data/spec/blather/stanza/pubsub/unsubscribe_spec.rb +22 -22
- data/spec/blather/stanza/pubsub_owner/delete_spec.rb +9 -9
- data/spec/blather/stanza/pubsub_owner/purge_spec.rb +9 -9
- data/spec/blather/stanza/pubsub_owner_spec.rb +6 -6
- data/spec/blather/stanza/pubsub_spec.rb +15 -15
- data/spec/blather/stanza/x_spec.rb +53 -53
- data/spec/blather/stanza_spec.rb +39 -39
- data/spec/blather/stream/client_spec.rb +160 -160
- data/spec/blather/stream/component_spec.rb +8 -10
- data/spec/blather/stream/parser_spec.rb +25 -25
- data/spec/blather/stream/ssl_spec.rb +3 -3
- data/spec/blather/xmpp_node_spec.rb +9 -9
- data/spec/blather_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +26 -27
@@ -3,72 +3,72 @@ require 'fixtures/pubsub'
|
|
3
3
|
|
4
4
|
describe Blather::Stanza::PubSub::Unsubscribe do
|
5
5
|
it 'registers itself' do
|
6
|
-
Blather::XMPPNode.class_from_registration(:unsubscribe, 'http://jabber.org/protocol/pubsub').
|
6
|
+
expect(Blather::XMPPNode.class_from_registration(:unsubscribe, 'http://jabber.org/protocol/pubsub')).to eq(Blather::Stanza::PubSub::Unsubscribe)
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'can be imported' do
|
10
|
-
Blather::XMPPNode.parse(unsubscribe_xml).
|
10
|
+
expect(Blather::XMPPNode.parse(unsubscribe_xml)).to be_instance_of Blather::Stanza::PubSub::Unsubscribe
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'ensures an unsubscribe node is present on create' do
|
14
14
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node', 'jid'
|
15
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns).
|
15
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'ensures an unsubscribe node exists when calling #unsubscribe' do
|
19
19
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node', 'jid'
|
20
20
|
unsubscribe.pubsub.remove_children :unsubscribe
|
21
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns).
|
21
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns)).to be_empty
|
22
22
|
|
23
|
-
unsubscribe.unsubscribe.
|
24
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns).
|
23
|
+
expect(unsubscribe.unsubscribe).not_to be_nil
|
24
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'defaults to a set node' do
|
28
28
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node', 'jid'
|
29
|
-
unsubscribe.type.
|
29
|
+
expect(unsubscribe.type).to eq(:set)
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'sets the host if requested' do
|
33
33
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'pubsub.jabber.local', 'node', 'jid'
|
34
|
-
unsubscribe.to.
|
34
|
+
expect(unsubscribe.to).to eq(Blather::JID.new('pubsub.jabber.local'))
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'sets the node' do
|
38
38
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node-name', 'jid'
|
39
|
-
unsubscribe.node.
|
39
|
+
expect(unsubscribe.node).to eq('node-name')
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'has a node attribute' do
|
43
43
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node-name', 'jid'
|
44
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@node="node-name"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
45
|
-
unsubscribe.node.
|
44
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@node="node-name"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
45
|
+
expect(unsubscribe.node).to eq('node-name')
|
46
46
|
|
47
47
|
unsubscribe.node = 'new-node'
|
48
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@node="new-node"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
49
|
-
unsubscribe.node.
|
48
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@node="new-node"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
49
|
+
expect(unsubscribe.node).to eq('new-node')
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'has a jid attribute' do
|
53
53
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node-name', 'jid'
|
54
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@jid="jid"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
55
|
-
unsubscribe.jid.
|
54
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@jid="jid"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
55
|
+
expect(unsubscribe.jid).to eq(Blather::JID.new('jid'))
|
56
56
|
|
57
57
|
unsubscribe.jid = Blather::JID.new('n@d/r')
|
58
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@jid="n@d/r"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
59
|
-
unsubscribe.jid.
|
58
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@jid="n@d/r"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
59
|
+
expect(unsubscribe.jid).to eq(Blather::JID.new('n@d/r'))
|
60
60
|
end
|
61
61
|
|
62
62
|
it 'has a subid attribute' do
|
63
63
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node-name', 'jid'
|
64
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="subid"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
64
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="subid"]', :ns => Blather::Stanza::PubSub.registered_ns)).to be_empty
|
65
65
|
|
66
66
|
unsubscribe = Blather::Stanza::PubSub::Unsubscribe.new :set, 'host', 'node-name', 'jid', 'subid'
|
67
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="subid"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
68
|
-
unsubscribe.subid.
|
67
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="subid"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
68
|
+
expect(unsubscribe.subid).to eq('subid')
|
69
69
|
|
70
70
|
unsubscribe.subid = 'newsubid'
|
71
|
-
unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="newsubid"]', :ns => Blather::Stanza::PubSub.registered_ns).
|
72
|
-
unsubscribe.subid.
|
71
|
+
expect(unsubscribe.find('//ns:pubsub/ns:unsubscribe[@subid="newsubid"]', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_empty
|
72
|
+
expect(unsubscribe.subid).to eq('newsubid')
|
73
73
|
end
|
74
74
|
end
|
@@ -3,11 +3,11 @@ require 'fixtures/pubsub'
|
|
3
3
|
|
4
4
|
describe Blather::Stanza::PubSubOwner::Delete do
|
5
5
|
it 'registers itself' do
|
6
|
-
Blather::XMPPNode.class_from_registration(:delete, 'http://jabber.org/protocol/pubsub#owner').
|
6
|
+
expect(Blather::XMPPNode.class_from_registration(:delete, 'http://jabber.org/protocol/pubsub#owner')).to eq(Blather::Stanza::PubSubOwner::Delete)
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'can be imported' do
|
10
|
-
Blather::XMPPNode.parse(<<-NODE).
|
10
|
+
expect(Blather::XMPPNode.parse(<<-NODE)).to be_instance_of Blather::Stanza::PubSubOwner::Delete
|
11
11
|
<iq type='set'
|
12
12
|
from='hamlet@denmark.lit/elsinore'
|
13
13
|
to='pubsub.shakespeare.lit'
|
@@ -21,30 +21,30 @@ describe Blather::Stanza::PubSubOwner::Delete do
|
|
21
21
|
|
22
22
|
it 'ensures an delete node is present on delete' do
|
23
23
|
delete = Blather::Stanza::PubSubOwner::Delete.new
|
24
|
-
delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
24
|
+
expect(delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_empty
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'ensures an delete node exists when calling #delete_node' do
|
28
28
|
delete = Blather::Stanza::PubSubOwner::Delete.new
|
29
29
|
delete.pubsub.remove_children :delete
|
30
|
-
delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
30
|
+
expect(delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns)).to be_empty
|
31
31
|
|
32
|
-
delete.delete_node.
|
33
|
-
delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
32
|
+
expect(delete.delete_node).not_to be_nil
|
33
|
+
expect(delete.find('//ns:pubsub/ns:delete', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_empty
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'defaults to a set node' do
|
37
37
|
delete = Blather::Stanza::PubSubOwner::Delete.new
|
38
|
-
delete.type.
|
38
|
+
expect(delete.type).to eq(:set)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'sets the host if requested' do
|
42
42
|
delete = Blather::Stanza::PubSubOwner::Delete.new :set, 'pubsub.jabber.local'
|
43
|
-
delete.to.
|
43
|
+
expect(delete.to).to eq(Blather::JID.new('pubsub.jabber.local'))
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'sets the node' do
|
47
47
|
delete = Blather::Stanza::PubSubOwner::Delete.new :set, 'host', 'node-name'
|
48
|
-
delete.node.
|
48
|
+
expect(delete.node).to eq('node-name')
|
49
49
|
end
|
50
50
|
end
|
@@ -3,11 +3,11 @@ require 'fixtures/pubsub'
|
|
3
3
|
|
4
4
|
describe Blather::Stanza::PubSubOwner::Purge do
|
5
5
|
it 'registers itself' do
|
6
|
-
Blather::XMPPNode.class_from_registration(:purge, 'http://jabber.org/protocol/pubsub#owner').
|
6
|
+
expect(Blather::XMPPNode.class_from_registration(:purge, 'http://jabber.org/protocol/pubsub#owner')).to eq(Blather::Stanza::PubSubOwner::Purge)
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'can be imported' do
|
10
|
-
Blather::XMPPNode.parse(<<-NODE).
|
10
|
+
expect(Blather::XMPPNode.parse(<<-NODE)).to be_instance_of Blather::Stanza::PubSubOwner::Purge
|
11
11
|
<iq type='set'
|
12
12
|
from='hamlet@denmark.lit/elsinore'
|
13
13
|
to='pubsub.shakespeare.lit'
|
@@ -21,30 +21,30 @@ describe Blather::Stanza::PubSubOwner::Purge do
|
|
21
21
|
|
22
22
|
it 'ensures an purge node is present on create' do
|
23
23
|
purge = Blather::Stanza::PubSubOwner::Purge.new
|
24
|
-
purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
24
|
+
expect(purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_empty
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'ensures an purge node exists when calling #purge_node' do
|
28
28
|
purge = Blather::Stanza::PubSubOwner::Purge.new
|
29
29
|
purge.pubsub.remove_children :purge
|
30
|
-
purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
30
|
+
expect(purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns)).to be_empty
|
31
31
|
|
32
|
-
purge.purge_node.
|
33
|
-
purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
32
|
+
expect(purge.purge_node).not_to be_nil
|
33
|
+
expect(purge.find('//ns:pubsub/ns:purge', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_empty
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'defaults to a set node' do
|
37
37
|
purge = Blather::Stanza::PubSubOwner::Purge.new
|
38
|
-
purge.type.
|
38
|
+
expect(purge.type).to eq(:set)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'sets the host if requested' do
|
42
42
|
purge = Blather::Stanza::PubSubOwner::Purge.new :set, 'pubsub.jabber.local'
|
43
|
-
purge.to.
|
43
|
+
expect(purge.to).to eq(Blather::JID.new('pubsub.jabber.local'))
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'sets the node' do
|
47
47
|
purge = Blather::Stanza::PubSubOwner::Purge.new :set, 'host', 'node-name'
|
48
|
-
purge.node.
|
48
|
+
expect(purge.node).to eq('node-name')
|
49
49
|
end
|
50
50
|
end
|
@@ -3,25 +3,25 @@ require 'fixtures/pubsub'
|
|
3
3
|
|
4
4
|
describe Blather::Stanza::PubSubOwner do
|
5
5
|
it 'registers itself' do
|
6
|
-
Blather::XMPPNode.class_from_registration(:pubsub, 'http://jabber.org/protocol/pubsub#owner').
|
6
|
+
expect(Blather::XMPPNode.class_from_registration(:pubsub, 'http://jabber.org/protocol/pubsub#owner')).to eq(Blather::Stanza::PubSubOwner)
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'ensures a pubusb node is present on create' do
|
10
10
|
pubsub = Blather::Stanza::PubSubOwner.new
|
11
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
11
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_nil
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'ensures a pubsub node exists when calling #pubsub' do
|
15
15
|
pubsub = Blather::Stanza::PubSubOwner.new
|
16
16
|
pubsub.remove_children :pubsub
|
17
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
17
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns)).to be_nil
|
18
18
|
|
19
|
-
pubsub.pubsub.
|
20
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns).
|
19
|
+
expect(pubsub.pubsub).not_to be_nil
|
20
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSubOwner.registered_ns)).not_to be_nil
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'sets the host if requested' do
|
24
24
|
aff = Blather::Stanza::PubSubOwner.new :get, 'pubsub.jabber.local'
|
25
|
-
aff.to.
|
25
|
+
expect(aff.to).to eq(Blather::JID.new('pubsub.jabber.local'))
|
26
26
|
end
|
27
27
|
end
|
@@ -3,31 +3,31 @@ require 'fixtures/pubsub'
|
|
3
3
|
|
4
4
|
describe Blather::Stanza::PubSub do
|
5
5
|
it 'registers itself' do
|
6
|
-
Blather::XMPPNode.class_from_registration(:pubsub, 'http://jabber.org/protocol/pubsub').
|
6
|
+
expect(Blather::XMPPNode.class_from_registration(:pubsub, 'http://jabber.org/protocol/pubsub')).to eq(Blather::Stanza::PubSub)
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'ensures a pubusb node is present on create' do
|
10
10
|
pubsub = Blather::Stanza::PubSub.new
|
11
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns).
|
11
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_nil
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'ensures a pubsub node exists when calling #pubsub' do
|
15
15
|
pubsub = Blather::Stanza::PubSub.new
|
16
16
|
pubsub.remove_children :pubsub
|
17
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns).
|
17
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns)).to be_nil
|
18
18
|
|
19
|
-
pubsub.pubsub.
|
20
|
-
pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns).
|
19
|
+
expect(pubsub.pubsub).not_to be_nil
|
20
|
+
expect(pubsub.find_first('/iq/ns:pubsub', :ns => Blather::Stanza::PubSub.registered_ns)).not_to be_nil
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'sets the host if requested' do
|
24
24
|
aff = Blather::Stanza::PubSub.new :get, 'pubsub.jabber.local'
|
25
|
-
aff.to.
|
25
|
+
expect(aff.to).to eq(Blather::JID.new('pubsub.jabber.local'))
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'ensures newly inherited items are PubSubItem objects' do
|
29
29
|
pubsub = Blather::XMPPNode.parse(items_all_nodes_xml)
|
30
|
-
pubsub.items.map { |i| i.class }.uniq.
|
30
|
+
expect(pubsub.items.map { |i| i.class }.uniq).to eq([Blather::Stanza::PubSub::PubSubItem])
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -35,34 +35,34 @@ describe Blather::Stanza::PubSub::PubSubItem do
|
|
35
35
|
it 'can be initialized with just an ID' do
|
36
36
|
id = 'foobarbaz'
|
37
37
|
item = Blather::Stanza::PubSub::Items::PubSubItem.new id
|
38
|
-
item.id.
|
38
|
+
expect(item.id).to eq(id)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'can be initialized with a payload' do
|
42
42
|
payload = 'foobarbaz'
|
43
43
|
item = Blather::Stanza::PubSub::Items::PubSubItem.new 'foo', payload
|
44
|
-
item.payload.
|
44
|
+
expect(item.payload).to eq(payload)
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'allows the payload to be set' do
|
48
48
|
item = Blather::Stanza::PubSub::Items::PubSubItem.new
|
49
|
-
item.payload.
|
49
|
+
expect(item.payload).to be_nil
|
50
50
|
item.payload = 'testing'
|
51
|
-
item.payload.
|
52
|
-
item.content.
|
51
|
+
expect(item.payload).to eq('testing')
|
52
|
+
expect(item.content).to eq('testing')
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'allows the payload to be unset' do
|
56
56
|
payload = 'foobarbaz'
|
57
57
|
item = Blather::Stanza::PubSub::Items::PubSubItem.new 'foo', payload
|
58
|
-
item.payload.
|
58
|
+
expect(item.payload).to eq(payload)
|
59
59
|
item.payload = nil
|
60
|
-
item.payload.
|
60
|
+
expect(item.payload).to be_nil
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'makes payloads readable as string' do
|
64
64
|
payload = Blather::XMPPNode.new 'foo'
|
65
65
|
item = Blather::Stanza::PubSub::Items::PubSubItem.new 'bar', payload
|
66
|
-
item.payload.
|
66
|
+
expect(item.payload).to eq(payload.to_s)
|
67
67
|
end
|
68
68
|
end
|
@@ -32,60 +32,60 @@ describe Blather::Stanza::X do
|
|
32
32
|
|
33
33
|
it 'can be created from an XML string' do
|
34
34
|
x = Blather::Stanza::X.new parse_stanza(x_xml).root
|
35
|
-
x.type.
|
36
|
-
x.
|
35
|
+
expect(x.type).to eq(:form)
|
36
|
+
expect(x).to be_instance_of Blather::Stanza::X
|
37
37
|
end
|
38
38
|
|
39
39
|
[:cancel, :form, :result, :submit].each do |type|
|
40
40
|
it "type can be set as \"#{type}\"" do
|
41
41
|
x = Blather::Stanza::X.new type
|
42
|
-
x.type.
|
42
|
+
expect(x.type).to eq(type)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'is constructed properly' do
|
47
47
|
n = Blather::Stanza::X.new :form
|
48
|
-
n.find("/ns:x[@type='form']", :ns => Blather::Stanza::X.registered_ns).
|
48
|
+
expect(n.find("/ns:x[@type='form']", :ns => Blather::Stanza::X.registered_ns)).not_to be_empty
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'has an action attribute' do
|
52
52
|
n = Blather::Stanza::X.new :form
|
53
|
-
n.type.
|
53
|
+
expect(n.type).to eq(:form)
|
54
54
|
n.type = :submit
|
55
|
-
n.type.
|
55
|
+
expect(n.type).to eq(:submit)
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'has a title attribute' do
|
59
59
|
n = Blather::Stanza::X.new :form
|
60
|
-
n.title.
|
60
|
+
expect(n.title).to eq(nil)
|
61
61
|
n.title = "Hello World!"
|
62
|
-
n.title.
|
62
|
+
expect(n.title).to eq("Hello World!")
|
63
63
|
n.title = "goodbye"
|
64
|
-
n.title.
|
64
|
+
expect(n.title).to eq("goodbye")
|
65
65
|
end
|
66
66
|
|
67
67
|
it 'has an instructions attribute' do
|
68
68
|
n = Blather::Stanza::X.new :form
|
69
|
-
n.instructions.
|
69
|
+
expect(n.instructions).to eq(nil)
|
70
70
|
n.instructions = "Please fill in this form"
|
71
|
-
n.instructions.
|
71
|
+
expect(n.instructions).to eq("Please fill in this form")
|
72
72
|
n.instructions = "goodbye"
|
73
|
-
n.instructions.
|
73
|
+
expect(n.instructions).to eq("goodbye")
|
74
74
|
end
|
75
75
|
|
76
76
|
it 'inherits a list of fields' do
|
77
77
|
n = Blather::Stanza::Iq::Command.new
|
78
78
|
n.command << parse_stanza(x_xml).root
|
79
79
|
r = Blather::Stanza::X.new.inherit n.form
|
80
|
-
r.fields.size.
|
81
|
-
r.fields.map { |f| f.class }.uniq.
|
80
|
+
expect(r.fields.size).to eq(4)
|
81
|
+
expect(r.fields.map { |f| f.class }.uniq).to eq([Blather::Stanza::X::Field])
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'returns a field object for a particular var' do
|
85
85
|
x = Blather::Stanza::X.new parse_stanza(x_xml).root
|
86
86
|
f = x.field 'field-name4'
|
87
|
-
f.
|
88
|
-
f.value.
|
87
|
+
expect(f).to be_instance_of Blather::Stanza::X::Field
|
88
|
+
expect(f.value).to eq('field-value4')
|
89
89
|
end
|
90
90
|
|
91
91
|
it 'takes a list of hashes for fields' do
|
@@ -98,8 +98,8 @@ describe Blather::Stanza::X do
|
|
98
98
|
Blather::Stanza::X::Field.new(*%w[var1 text-single label1])]
|
99
99
|
|
100
100
|
di = Blather::Stanza::X.new nil, fields
|
101
|
-
di.fields.size.
|
102
|
-
di.fields.each { |f| control.include?(f).
|
101
|
+
expect(di.fields.size).to eq(2)
|
102
|
+
di.fields.each { |f| expect(control.include?(f)).to eq(true) }
|
103
103
|
end
|
104
104
|
|
105
105
|
it 'takes a list of Field objects as fields' do
|
@@ -107,8 +107,8 @@ describe Blather::Stanza::X do
|
|
107
107
|
Blather::Stanza::X::Field.new(*%w[var1 text-single label1])]
|
108
108
|
|
109
109
|
di = Blather::Stanza::X.new nil, control
|
110
|
-
di.fields.size.
|
111
|
-
di.fields.each { |f| control.include?(f).
|
110
|
+
expect(di.fields.size).to eq(2)
|
111
|
+
di.fields.each { |f| expect(control.include?(f)).to eq(true) }
|
112
112
|
end
|
113
113
|
|
114
114
|
it 'takes a mix of hashes and field objects as fields' do
|
@@ -121,17 +121,17 @@ describe Blather::Stanza::X do
|
|
121
121
|
Blather::Stanza::X::Field.new(*%w[var1 text-single label1])]
|
122
122
|
|
123
123
|
di = Blather::Stanza::X.new nil, fields
|
124
|
-
di.fields.size.
|
125
|
-
di.fields.each { |f| control.include?(f).
|
124
|
+
expect(di.fields.size).to eq(2)
|
125
|
+
di.fields.each { |f| expect(control.include?(f)).to eq(true) }
|
126
126
|
end
|
127
127
|
|
128
128
|
it 'allows adding of fields' do
|
129
129
|
di = Blather::Stanza::X.new nil
|
130
|
-
di.fields.size.
|
130
|
+
expect(di.fields.size).to eq(0)
|
131
131
|
di.fields = [{:label => 'label', :type => 'text-single', :var => 'var', :required => true}]
|
132
|
-
di.fields.size.
|
132
|
+
expect(di.fields.size).to eq(1)
|
133
133
|
di.fields += [Blather::Stanza::X::Field.new(*%w[var1 text-single label1])]
|
134
|
-
di.fields.size.
|
134
|
+
expect(di.fields.size).to eq(2)
|
135
135
|
end
|
136
136
|
|
137
137
|
end
|
@@ -140,76 +140,76 @@ describe Blather::Stanza::X::Field do
|
|
140
140
|
subject { Blather::Stanza::X::Field.new nil }
|
141
141
|
|
142
142
|
it "should have the namespace 'jabber:x:data'" do
|
143
|
-
subject.namespace.href.
|
143
|
+
expect(subject.namespace.href).to eq('jabber:x:data')
|
144
144
|
end
|
145
145
|
|
146
146
|
it 'will auto-inherit nodes' do
|
147
147
|
n = parse_stanza "<field type='text-single' var='music' label='Music from the time of Shakespeare' />"
|
148
148
|
i = Blather::Stanza::X::Field.new n.root
|
149
|
-
i.type.
|
150
|
-
i.var.
|
151
|
-
i.label.
|
149
|
+
expect(i.type).to eq('text-single')
|
150
|
+
expect(i.var).to eq('music')
|
151
|
+
expect(i.label).to eq('Music from the time of Shakespeare')
|
152
152
|
end
|
153
153
|
|
154
154
|
it 'has a type attribute' do
|
155
155
|
n = Blather::Stanza::X::Field.new 'var', 'text-single'
|
156
|
-
n.type.
|
156
|
+
expect(n.type).to eq('text-single')
|
157
157
|
n.type = 'hidden'
|
158
|
-
n.type.
|
158
|
+
expect(n.type).to eq('hidden')
|
159
159
|
end
|
160
160
|
|
161
161
|
it 'has a var attribute' do
|
162
162
|
n = Blather::Stanza::X::Field.new 'name', 'text-single'
|
163
|
-
n.var.
|
163
|
+
expect(n.var).to eq('name')
|
164
164
|
n.var = 'email'
|
165
|
-
n.var.
|
165
|
+
expect(n.var).to eq('email')
|
166
166
|
end
|
167
167
|
|
168
168
|
it 'has a label attribute' do
|
169
169
|
n = Blather::Stanza::X::Field.new 'subject', 'text-single', 'Music from the time of Shakespeare'
|
170
|
-
n.label.
|
170
|
+
expect(n.label).to eq('Music from the time of Shakespeare')
|
171
171
|
n.label = 'Books by and about Shakespeare'
|
172
|
-
n.label.
|
172
|
+
expect(n.label).to eq('Books by and about Shakespeare')
|
173
173
|
end
|
174
174
|
|
175
175
|
it 'has a desc attribute' do
|
176
176
|
n = Blather::Stanza::X::Field.new 'subject', 'text-single', 'Music from the time of Shakespeare'
|
177
|
-
n.desc.
|
177
|
+
expect(n.desc).to eq(nil)
|
178
178
|
n.desc = 'Books by and about Shakespeare'
|
179
|
-
n.desc.
|
179
|
+
expect(n.desc).to eq('Books by and about Shakespeare')
|
180
180
|
n.desc = 'goodbye'
|
181
|
-
n.desc.
|
181
|
+
expect(n.desc).to eq('goodbye')
|
182
182
|
end
|
183
183
|
|
184
184
|
it 'has a required? attribute' do
|
185
185
|
n = Blather::Stanza::X::Field.new 'subject', 'text-single', 'Music from the time of Shakespeare'
|
186
|
-
n.required
|
186
|
+
expect(n.required?).to eq(false)
|
187
187
|
n.required = true
|
188
|
-
n.required
|
188
|
+
expect(n.required?).to eq(true)
|
189
189
|
n.required = false
|
190
|
-
n.required
|
190
|
+
expect(n.required?).to eq(false)
|
191
191
|
end
|
192
192
|
|
193
193
|
it 'has a value attribute' do
|
194
194
|
n = Blather::Stanza::X::Field.new 'subject', 'text-single', 'Music from the time of Shakespeare'
|
195
|
-
n.value.
|
195
|
+
expect(n.value).to eq(nil)
|
196
196
|
n.value = 'book1'
|
197
|
-
n.value.
|
197
|
+
expect(n.value).to eq('book1')
|
198
198
|
n.value = 'book2'
|
199
|
-
n.value.
|
199
|
+
expect(n.value).to eq('book2')
|
200
200
|
end
|
201
201
|
|
202
202
|
it 'allows setting options' do
|
203
203
|
di = Blather::Stanza::X::Field.new nil
|
204
|
-
di.options.size.
|
204
|
+
expect(di.options.size).to eq(0)
|
205
205
|
di.options = [{:label => 'Person', :value => 'person'}, Blather::Stanza::X::Field::Option.new(*%w[person1 Person1])]
|
206
|
-
di.options.size.
|
206
|
+
expect(di.options.size).to eq(2)
|
207
207
|
end
|
208
208
|
|
209
209
|
it 'can determine equality' do
|
210
210
|
a = Blather::Stanza::X::Field.new('subject', 'text-single')
|
211
|
-
a.
|
212
|
-
a.
|
211
|
+
expect(a).to eq(Blather::Stanza::X::Field.new('subject', 'text-single'))
|
212
|
+
expect(a).not_to equal Blather::Stanza::X::Field.new('subject1', 'text-single')
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
@@ -217,17 +217,17 @@ describe Blather::Stanza::X::Field::Option do
|
|
217
217
|
|
218
218
|
it 'has a value attribute' do
|
219
219
|
n = Blather::Stanza::X::Field::Option.new 'person1', 'Person 1'
|
220
|
-
n.value.
|
220
|
+
expect(n.value).to eq('person1')
|
221
221
|
n.value = 'book1'
|
222
|
-
n.value.
|
222
|
+
expect(n.value).to eq('book1')
|
223
223
|
end
|
224
224
|
|
225
225
|
it 'has a label attribute' do
|
226
226
|
n = Blather::Stanza::X::Field::Option.new 'person1', 'Person 1'
|
227
|
-
n.label.
|
227
|
+
expect(n.label).to eq('Person 1')
|
228
228
|
n.label = 'Book 1'
|
229
|
-
n.label.
|
229
|
+
expect(n.label).to eq('Book 1')
|
230
230
|
n.label = 'Book 2'
|
231
|
-
n.label.
|
231
|
+
expect(n.label).to eq('Book 2')
|
232
232
|
end
|
233
233
|
end
|