jubjub 0.0.7 → 0.0.8
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.
- data/README.mdown +27 -1
- data/lib/jubjub.rb +1 -1
- data/lib/jubjub/connection/xmpp_gateway.rb +9 -9
- data/lib/jubjub/connection/xmpp_gateway/helper.rb +5 -5
- data/lib/jubjub/connection/xmpp_gateway/muc.rb +127 -32
- data/lib/jubjub/connection/xmpp_gateway/pubsub.rb +64 -64
- data/lib/jubjub/data_form.rb +16 -13
- data/lib/jubjub/errors.rb +2 -2
- data/lib/jubjub/helpers.rb +32 -0
- data/lib/jubjub/jid.rb +8 -8
- data/lib/jubjub/muc.rb +3 -1
- data/lib/jubjub/muc/affiliation.rb +77 -0
- data/lib/jubjub/muc/affiliations_collection.rb +31 -0
- data/lib/jubjub/muc/collection.rb +12 -19
- data/lib/jubjub/muc/configuration.rb +2 -2
- data/lib/jubjub/muc/muc.rb +24 -11
- data/lib/jubjub/pubsub.rb +1 -1
- data/lib/jubjub/pubsub/affiliation.rb +20 -20
- data/lib/jubjub/pubsub/affiliation_collection.rb +11 -18
- data/lib/jubjub/pubsub/collection.rb +14 -21
- data/lib/jubjub/pubsub/configuration.rb +2 -2
- data/lib/jubjub/pubsub/item.rb +8 -8
- data/lib/jubjub/pubsub/item_collection.rb +10 -17
- data/lib/jubjub/pubsub/pubsub.rb +17 -17
- data/lib/jubjub/pubsub/subscription.rb +6 -6
- data/lib/jubjub/response.rb +1 -1
- data/lib/jubjub/response/error.rb +6 -6
- data/lib/jubjub/response/proxy.rb +8 -8
- data/lib/jubjub/response/response.rb +10 -10
- data/lib/jubjub/user.rb +16 -15
- data/spec/connection/xmpp_gateway_muc_spec.rb +174 -40
- data/spec/connection/xmpp_gateway_pubsub_spec.rb +100 -104
- data/spec/fixtures/vcr_cassettes/muc_configuration.yml +73 -6
- data/spec/fixtures/vcr_cassettes/muc_create_with_configuration.yml +8 -8
- data/spec/fixtures/vcr_cassettes/muc_message.yml +89 -0
- data/spec/fixtures/vcr_cassettes/muc_modify_affiliations.yml +367 -0
- data/spec/fixtures/vcr_cassettes/muc_retrieve_affiliations.yml +93 -0
- data/spec/fixtures/vcr_cassettes/pubsub_publish_with_dataform_payload.yml +3 -3
- data/spec/fixtures/vcr_cassettes/pubsub_retrieve_items.yml +24 -18
- data/spec/mixins/user_spec.rb +37 -37
- data/spec/models/data_form_spec.rb +3 -3
- data/spec/models/jid_spec.rb +41 -41
- data/spec/models/muc_affiliation_collection_spec.rb +146 -0
- data/spec/models/muc_affiliation_spec.rb +215 -0
- data/spec/models/muc_collection_spec.rb +64 -32
- data/spec/models/muc_configuration_spec.rb +3 -3
- data/spec/models/muc_spec.rb +44 -23
- data/spec/models/pubsub_affiliation_collection_spec.rb +65 -30
- data/spec/models/pubsub_affiliation_spec.rb +50 -50
- data/spec/models/pubsub_collection_spec.rb +65 -49
- data/spec/models/pubsub_item_collection_spec.rb +17 -17
- data/spec/models/pubsub_item_spec.rb +18 -18
- data/spec/models/pubsub_spec.rb +41 -41
- data/spec/models/pubsub_subscription_spec.rb +23 -23
- data/spec/models/response_error_spec.rb +19 -19
- data/spec/models/response_proxy_spec.rb +51 -49
- data/spec/models/response_spec.rb +33 -33
- data/spec/support/helpers.rb +21 -1
- data/spec/support/matchers.rb +4 -4
- data/spec/support/shared_examples.rb +132 -94
- data/spec/support/webmock_stanza_matching.rb +43 -0
- metadata +45 -16
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jubjub::Pubsub::Collection do
|
4
|
-
|
4
|
+
|
5
5
|
describe "that are proxied like" do
|
6
|
-
|
6
|
+
|
7
7
|
before do
|
8
8
|
@mock_connection = mock
|
9
9
|
@nodes = [
|
10
10
|
Jubjub::Pubsub.new('pubsub.foo.com', 'node_1', @mock_connection),
|
11
|
-
Jubjub::Pubsub.new('pubsub.foo.com', 'node_2', @mock_connection)
|
11
|
+
Jubjub::Pubsub.new('pubsub.foo.com', 'node_2', @mock_connection)
|
12
12
|
]
|
13
13
|
@mock_connection.stub_chain( :pubsub, :list ).and_return(@nodes)
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
describe "inspect" do
|
17
17
|
|
18
18
|
it "should show the list of rooms, not Muc::Collection" do
|
@@ -29,42 +29,42 @@ describe Jubjub::Pubsub::Collection do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
describe "instance method" do
|
36
|
-
|
36
|
+
|
37
37
|
describe "jid" do
|
38
38
|
it "should return the jid" do
|
39
39
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", mock
|
40
40
|
p.jid.should == Jubjub::Jid.new('pubsub.foo.com')
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
describe "subscribe" do
|
45
45
|
it "should call pubsub.subscribe on connection" do
|
46
46
|
@mock_connection = mock
|
47
47
|
@mock_connection.stub_chain :pubsub, :subscribe
|
48
48
|
@mock_connection.pubsub.should_receive(:subscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )
|
49
|
-
|
49
|
+
|
50
50
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
|
51
|
-
p.subscribe "node"
|
51
|
+
p.subscribe "node"
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
describe "unsubscribe" do
|
56
56
|
before do
|
57
57
|
@mock_connection = mock
|
58
58
|
@mock_connection.stub_chain :pubsub, :unsubscribe
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
it "without subid should call pubsub.unsubscribe on connection" do
|
62
62
|
@mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
|
63
63
|
|
64
64
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
|
65
|
-
p.unsubscribe "node"
|
65
|
+
p.unsubscribe "node"
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
it "with subid should call pubsub.unsubscribe on connection" do
|
69
69
|
@mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', '123' )
|
70
70
|
|
@@ -72,109 +72,125 @@ describe Jubjub::Pubsub::Collection do
|
|
72
72
|
p.unsubscribe "node", "123"
|
73
73
|
end
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
describe "create" do
|
77
77
|
before do
|
78
78
|
@mock_connection = mock
|
79
|
-
@mock_connection.stub_chain :pubsub, :create
|
79
|
+
@mock_connection.stub_chain :pubsub, :create
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
it "should call pubsub.create on connection" do
|
83
83
|
@mock_connection.pubsub.should_receive(:create).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
|
84
|
-
|
84
|
+
|
85
85
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
|
86
86
|
p.create "node"
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
it "should yield a Pubsub::Configuration if a block is given" do
|
90
90
|
@config = Jubjub::Pubsub::Configuration.new( "foo" => { :type => "boolean", :value => "1", :label => "Foo" } )
|
91
|
-
|
91
|
+
|
92
92
|
@mock_connection.pubsub.should_receive( :default_configuration ).with( Jubjub::Jid.new( 'pubsub.foo.com' ) ).and_return( @config )
|
93
93
|
@mock_connection.pubsub.should_receive( :create ).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', @config )
|
94
|
-
|
94
|
+
|
95
95
|
Jubjub::Pubsub::Collection.new( "pubsub.foo.com", @mock_connection ).create( 'node' ){|config|
|
96
96
|
config.should == @config
|
97
97
|
}
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
describe "[]" do
|
102
102
|
before do
|
103
103
|
@mock_connection = mock
|
104
104
|
@nodes = [
|
105
105
|
Jubjub::Pubsub.new('pubsub.foo.com', 'node_1', @mock_connection),
|
106
|
-
Jubjub::Pubsub.new('pubsub.foo.com', 'node_2', @mock_connection)
|
106
|
+
Jubjub::Pubsub.new('pubsub.foo.com', 'node_2', @mock_connection)
|
107
107
|
]
|
108
108
|
@mock_connection.stub_chain( :pubsub, :list ).and_return(@nodes)
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
subject { Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection }
|
112
|
-
|
112
|
+
|
113
113
|
it "should work like a normal array when passed a Fixnum" do
|
114
114
|
subject[1].should == @nodes[1]
|
115
115
|
end
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
116
|
+
|
117
|
+
describe "searching by node if a String" do
|
118
|
+
|
119
|
+
it "should return cached result if it has already searched" do
|
120
|
+
# Trigger lookup
|
121
|
+
@mock_connection.pubsub.should_receive(:list)
|
122
|
+
subject.first
|
123
|
+
subject["node_1"].should equal @nodes[0]
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should return default result if it has already searched and does not exist" do
|
127
|
+
# Trigger lookup
|
128
|
+
@mock_connection.pubsub.should_receive(:list)
|
129
|
+
subject.first
|
130
|
+
subject['made-up'].should == Jubjub::Pubsub.new( 'pubsub.foo.com', 'made-up', @mock_connection )
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should return default result if it has not already searched" do
|
134
|
+
@mock_connection.pubsub.should_not_receive(:list)
|
135
|
+
subject['node_1'].should_not equal @nodes[0]
|
136
|
+
subject['node_1'].should == Jubjub::Pubsub.new( 'pubsub.foo.com', 'node_1', @mock_connection )
|
137
|
+
end
|
138
|
+
|
123
139
|
end
|
124
140
|
end
|
125
|
-
|
126
|
-
|
141
|
+
|
142
|
+
|
127
143
|
describe "destroy" do
|
128
144
|
it "with redirect should call pubsub.destroy on connection" do
|
129
145
|
@mock_connection = mock
|
130
146
|
@mock_connection.stub_chain :pubsub, :destroy
|
131
|
-
|
132
|
-
@mock_connection.pubsub.should_receive(:destroy).with(
|
147
|
+
|
148
|
+
@mock_connection.pubsub.should_receive(:destroy).with(
|
133
149
|
Jubjub::Jid.new('pubsub.foo.com'),
|
134
150
|
'node',
|
135
151
|
Jubjub::Jid.new('pubsub.new.com'),
|
136
152
|
'node_2'
|
137
153
|
)
|
138
|
-
|
154
|
+
|
139
155
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
|
140
156
|
p.destroy "node", "pubsub.new.com", "node_2"
|
141
157
|
end
|
142
|
-
|
158
|
+
|
143
159
|
it "without redirect should call pubsub.destroy on connection" do
|
144
160
|
@mock_connection = mock
|
145
161
|
@mock_connection.stub_chain :pubsub, :destroy
|
146
|
-
|
147
|
-
@mock_connection.pubsub.should_receive(:destroy).with(
|
162
|
+
|
163
|
+
@mock_connection.pubsub.should_receive(:destroy).with(
|
148
164
|
Jubjub::Jid.new('pubsub.foo.com'),
|
149
165
|
'node',
|
150
166
|
nil,
|
151
167
|
nil
|
152
168
|
)
|
153
|
-
|
169
|
+
|
154
170
|
p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
|
155
171
|
p.destroy "node"
|
156
172
|
end
|
157
173
|
end
|
158
|
-
|
174
|
+
|
159
175
|
describe "purge" do
|
160
|
-
|
176
|
+
|
161
177
|
before do
|
162
178
|
@mock_connection = mock
|
163
179
|
@mock_connection.stub_chain :pubsub, :purge
|
164
180
|
end
|
165
|
-
|
181
|
+
|
166
182
|
it "should call pubsub.purge on connection" do
|
167
183
|
@mock_connection.pubsub.should_receive(:purge).with(
|
168
184
|
Jubjub::Jid.new('pubsub.foo.com'),
|
169
185
|
'node'
|
170
186
|
)
|
171
|
-
|
187
|
+
|
172
188
|
m = Jubjub::Pubsub::Collection.new 'pubsub.foo.com', @mock_connection
|
173
189
|
m.purge('node')
|
174
190
|
end
|
175
|
-
|
191
|
+
|
176
192
|
end
|
177
|
-
|
193
|
+
|
178
194
|
end
|
179
|
-
|
180
|
-
end
|
195
|
+
|
196
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jubjub::Pubsub::ItemCollection do
|
4
|
-
|
4
|
+
|
5
5
|
describe "that are proxied like" do
|
6
|
-
|
6
|
+
|
7
7
|
before do
|
8
8
|
@mock_connection = mock
|
9
9
|
@items = [
|
10
10
|
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
|
11
|
-
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
|
11
|
+
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
|
12
12
|
]
|
13
13
|
@mock_connection.stub_chain( :pubsub, :retrieve_items ).and_return(@items)
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
describe "inspect" do
|
17
17
|
|
18
18
|
it "should show the list of items, not Pubsub::ItemCollection" do
|
@@ -29,48 +29,48 @@ describe Jubjub::Pubsub::ItemCollection do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
describe "instance method" do
|
36
|
-
|
36
|
+
|
37
37
|
describe "jid" do
|
38
38
|
it "should return the jid" do
|
39
39
|
Jubjub::Pubsub::ItemCollection.new("pubsub.foo.com", "node", mock).jid.should == Jubjub::Jid.new("pubsub.foo.com")
|
40
40
|
end
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
describe "node" do
|
44
44
|
it "should return the node" do
|
45
45
|
Jubjub::Pubsub::ItemCollection.new("pubsub.foo.com", "node", mock).node.should == 'node'
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
describe "[]" do
|
50
50
|
before do
|
51
51
|
@mock_connection = mock
|
52
52
|
@nodes = [
|
53
53
|
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
|
54
|
-
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
|
54
|
+
Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
|
55
55
|
]
|
56
56
|
@mock_connection.stub_chain( :pubsub, :retrieve_items ).and_return(@nodes)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
subject { Jubjub::Pubsub::ItemCollection.new "pubsub.foo.com", "node_1", @mock_connection }
|
60
|
-
|
60
|
+
|
61
61
|
it "should work like a normal array when passed a Fixnum" do
|
62
62
|
subject[1].should == @nodes[1]
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should search by node if a String" do
|
66
66
|
subject["abc"].should == @nodes[0]
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
it "should return nil if nothing found" do
|
70
70
|
subject['made-up'].should be_nil
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
end
|
75
|
-
|
76
|
-
end
|
75
|
+
|
76
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jubjub::Pubsub::Item do
|
4
|
-
|
4
|
+
|
5
5
|
def pubsub_item_factory(override = {})
|
6
6
|
options = {
|
7
7
|
:jid => Jubjub::Jid.new("pubsub.foo.com"),
|
@@ -10,7 +10,7 @@ describe Jubjub::Pubsub::Item do
|
|
10
10
|
:data => 'foo',
|
11
11
|
:connection => "SHHHH CONNECTION OBJECT"
|
12
12
|
}.merge( override )
|
13
|
-
|
13
|
+
|
14
14
|
Jubjub::Pubsub::Item.new(
|
15
15
|
options[:jid],
|
16
16
|
options[:node],
|
@@ -19,76 +19,76 @@ describe Jubjub::Pubsub::Item do
|
|
19
19
|
options[:connection]
|
20
20
|
)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe "instance method" do
|
24
|
-
|
24
|
+
|
25
25
|
describe "jid" do
|
26
26
|
it "should return the jid" do
|
27
27
|
p = pubsub_item_factory :jid => 'foo.com'
|
28
28
|
p.jid.should == Jubjub::Jid.new('foo.com')
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
describe "node" do
|
33
33
|
it "should return the node" do
|
34
34
|
p = pubsub_item_factory :node => 'node_1'
|
35
35
|
p.node.should == 'node_1'
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
describe "data" do
|
40
40
|
it "should return the data" do
|
41
41
|
p = pubsub_item_factory :data => 'hello'
|
42
42
|
p.data.should == 'hello'
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
describe "item_id" do
|
47
47
|
it "should return the item_id" do
|
48
48
|
p = pubsub_item_factory :item_id => 'as12'
|
49
49
|
p.item_id.should == 'as12'
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
describe "uri" do
|
54
54
|
it "should return the uri of the item" do
|
55
55
|
item = pubsub_item_factory :jid => "theozaurus@foo.com", :node => "blah", :item_id => "123"
|
56
56
|
item.uri.should == "xmpp:theozaurus@foo.com?;node=blah;item=123"
|
57
57
|
end
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
describe "retract" do
|
61
61
|
it "should call pubsub.retract on connection" do
|
62
62
|
@mock_connection = mock
|
63
63
|
@mock_connection.stub_chain :pubsub, :retract
|
64
64
|
@mock_connection.pubsub.should_receive(:retract).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', '123' )
|
65
|
-
|
65
|
+
|
66
66
|
p = pubsub_item_factory :jid => 'pubsub.foo.com', :node => 'node', :item_id => '123', :connection => @mock_connection
|
67
67
|
p.retract
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
describe "==" do
|
72
72
|
it "should match equivalent objects" do
|
73
73
|
pubsub_item_factory.should == pubsub_item_factory
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
it "should not distinguish between connections" do
|
77
77
|
pubsub_item_factory(:connection => 'wibble').should == pubsub_item_factory(:connection => 'wobble')
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should still match no matter how jid is initialized" do
|
81
81
|
pubsub_item_factory(:jid => 'foo@bar.com').should == pubsub_item_factory(:jid => Jubjub::Jid.new('foo@bar.com'))
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should not match objects with different attributes" do
|
85
|
-
pubsub_item_factory(:jid => 'a.b.com').should_not == pubsub_item_factory
|
85
|
+
pubsub_item_factory(:jid => 'a.b.com').should_not == pubsub_item_factory
|
86
86
|
pubsub_item_factory(:node => 'adsafsd').should_not == pubsub_item_factory
|
87
87
|
pubsub_item_factory(:item_id => '23').should_not == pubsub_item_factory
|
88
88
|
pubsub_item_factory(:data => '<wibble></wibble').should_not == pubsub_item_factory
|
89
89
|
end
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
end
|
93
|
-
|
94
|
-
end
|
93
|
+
|
94
|
+
end
|
data/spec/models/pubsub_spec.rb
CHANGED
@@ -1,49 +1,49 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jubjub::Pubsub do
|
4
|
-
|
4
|
+
|
5
5
|
describe "instance method" do
|
6
|
-
|
6
|
+
|
7
7
|
describe "inspect" do
|
8
|
-
|
8
|
+
|
9
9
|
it "should not show connection information" do
|
10
10
|
m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',"SHHHH CONNECTION OBJECT")
|
11
11
|
m.inspect.should_not match 'SHHHH CONNECTION OBJECT'
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
it "should show string version of jid" do
|
15
15
|
m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',mock)
|
16
16
|
m.inspect.should match '@jid="pubsub.foo.com"'
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
it "should show node" do
|
20
20
|
m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),nil,mock)
|
21
21
|
m.inspect.should match '@node=nil'
|
22
|
-
|
22
|
+
|
23
23
|
m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',mock)
|
24
24
|
m.inspect.should match '@node="node"'
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
describe "jid" do
|
30
30
|
it "should return the jid" do
|
31
31
|
Jubjub::Pubsub.new('pubsub.foo.com','node', mock).jid.should == Jubjub::Jid.new('pubsub.foo.com')
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
describe "node" do
|
36
36
|
it "should return the node" do
|
37
37
|
Jubjub::Pubsub.new('pubsub.foo.com','node', mock).node.should == 'node'
|
38
38
|
end
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
describe "uri" do
|
42
42
|
it "should return the uri of the node" do
|
43
43
|
Jubjub::Pubsub.new(Jubjub::Jid.new('theozaurus@foo.com'), 'blah', mock ).uri.should == "xmpp:theozaurus@foo.com?;node=blah"
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
describe "subscribe" do
|
48
48
|
it "should call pubsub.subscribe on connection" do
|
49
49
|
@mock_connection = mock
|
@@ -54,14 +54,14 @@ describe Jubjub::Pubsub do
|
|
54
54
|
m.subscribe
|
55
55
|
end
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
describe "unsubscribe" do
|
59
|
-
|
59
|
+
|
60
60
|
before do
|
61
61
|
@mock_connection = mock
|
62
62
|
@mock_connection.stub_chain :pubsub, :unsubscribe
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
describe "with subid" do
|
66
66
|
it "should call pubsub.unsubscribe on connection" do
|
67
67
|
@mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', 'wibble' )
|
@@ -70,7 +70,7 @@ describe Jubjub::Pubsub do
|
|
70
70
|
m.unsubscribe 'wibble'
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
describe "without subid" do
|
75
75
|
it "should call pubsub.unsubscribe on connection" do
|
76
76
|
@mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
|
@@ -79,16 +79,16 @@ describe Jubjub::Pubsub do
|
|
79
79
|
m.unsubscribe
|
80
80
|
end
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
describe "publish" do
|
86
|
-
|
86
|
+
|
87
87
|
before do
|
88
88
|
@mock_connection = mock
|
89
89
|
@mock_connection.stub_chain :pubsub, :publish
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
describe "with item id" do
|
93
93
|
it "should call pubsub.publish on connection" do
|
94
94
|
@mock_connection.pubsub.should_receive(:publish).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', 'data', '123' )
|
@@ -97,7 +97,7 @@ describe Jubjub::Pubsub do
|
|
97
97
|
m.publish 'data', '123'
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
describe "without item id" do
|
102
102
|
it "should call pubsub.publish on connection" do
|
103
103
|
@mock_connection.pubsub.should_receive(:publish).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', 'data', nil )
|
@@ -106,36 +106,36 @@ describe Jubjub::Pubsub do
|
|
106
106
|
m.publish 'data'
|
107
107
|
end
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
end
|
111
|
-
|
111
|
+
|
112
112
|
describe "retract" do
|
113
113
|
it "should call pubsub.retract on connection" do
|
114
114
|
@mock_connection = mock
|
115
115
|
@mock_connection.stub_chain :pubsub, :retract
|
116
116
|
@mock_connection.pubsub.should_receive(:retract).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', '123' )
|
117
|
-
|
117
|
+
|
118
118
|
m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
|
119
119
|
m.retract('123')
|
120
120
|
end
|
121
121
|
end
|
122
|
-
|
122
|
+
|
123
123
|
describe "destroy" do
|
124
|
-
|
124
|
+
|
125
125
|
before do
|
126
126
|
@mock_connection = mock
|
127
127
|
@mock_connection.stub_chain :pubsub, :destroy
|
128
128
|
end
|
129
|
-
|
129
|
+
|
130
130
|
it "without redirect should call pubsub.destroy on connection" do
|
131
131
|
@mock_connection.pubsub.should_receive(:destroy).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil, nil )
|
132
132
|
|
133
133
|
m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
|
134
134
|
m.destroy
|
135
135
|
end
|
136
|
-
|
136
|
+
|
137
137
|
it "with redirect should call pubsub.destroy on connection" do
|
138
|
-
@mock_connection.pubsub.should_receive(:destroy).with(
|
138
|
+
@mock_connection.pubsub.should_receive(:destroy).with(
|
139
139
|
Jubjub::Jid.new('pubsub.foo.com'),
|
140
140
|
'node',
|
141
141
|
Jubjub::Jid.new('pubsub.new.com'),
|
@@ -144,43 +144,43 @@ describe Jubjub::Pubsub do
|
|
144
144
|
m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
|
145
145
|
m.destroy 'pubsub.new.com', 'node_2'
|
146
146
|
end
|
147
|
-
|
147
|
+
|
148
148
|
end
|
149
|
-
|
149
|
+
|
150
150
|
describe "purge" do
|
151
|
-
|
151
|
+
|
152
152
|
before do
|
153
153
|
@mock_connection = mock
|
154
154
|
@mock_connection.stub_chain :pubsub, :purge
|
155
155
|
end
|
156
|
-
|
156
|
+
|
157
157
|
it "should call pubsub.purge on connection" do
|
158
158
|
@mock_connection.pubsub.should_receive(:purge).with(
|
159
159
|
Jubjub::Jid.new('pubsub.foo.com'),
|
160
160
|
'node'
|
161
161
|
)
|
162
|
-
|
162
|
+
|
163
163
|
m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
|
164
164
|
m.purge
|
165
165
|
end
|
166
|
-
|
166
|
+
|
167
167
|
end
|
168
|
-
|
168
|
+
|
169
169
|
describe "items" do
|
170
|
-
|
170
|
+
|
171
171
|
before do
|
172
172
|
@mock_connection = mock
|
173
173
|
end
|
174
|
-
|
174
|
+
|
175
175
|
it 'should return Jubjub::Pubsub::ItemCollection' do
|
176
176
|
@pubsub_node = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
|
177
177
|
@pubsub_node.items.should be_a Jubjub::Pubsub::ItemCollection
|
178
178
|
@pubsub_node.items.jid.should == Jubjub::Jid.new('pubsub.foo.com')
|
179
179
|
@pubsub_node.items.node.should == 'node'
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
end
|
183
|
-
|
183
|
+
|
184
184
|
end
|
185
|
-
|
186
|
-
end
|
185
|
+
|
186
|
+
end
|