pubnub 4.2.6 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pubnub might be problematic. Click here for more details.

Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.pubnub.yml +113 -56
  4. data/.travis.yml +4 -2
  5. data/CHANGELOG.md +39 -11
  6. data/Gemfile.lock +10 -1
  7. data/README.md +56 -17
  8. data/VERSION +1 -1
  9. data/fixtures/vcr_cassettes/examples/add_channels_to_push/001.yml +45 -0
  10. data/fixtures/vcr_cassettes/examples/add_channels_to_push/002.yml +45 -0
  11. data/fixtures/vcr_cassettes/examples/add_channels_to_push/003.yml +45 -0
  12. data/fixtures/vcr_cassettes/examples/add_channels_to_push/004.yml +45 -0
  13. data/fixtures/vcr_cassettes/examples/channel_members/001.yml +111 -0
  14. data/fixtures/vcr_cassettes/examples/channel_members/002.yml +111 -0
  15. data/fixtures/vcr_cassettes/examples/channel_members/003.yml +111 -0
  16. data/fixtures/vcr_cassettes/examples/channel_members/004.yml +147 -0
  17. data/fixtures/vcr_cassettes/examples/channel_members/005.yml +147 -0
  18. data/fixtures/vcr_cassettes/examples/channel_members/006.yml +147 -0
  19. data/fixtures/vcr_cassettes/examples/channel_metadata/001.yml +39 -0
  20. data/fixtures/vcr_cassettes/examples/channel_metadata/002.yml +39 -0
  21. data/fixtures/vcr_cassettes/examples/channel_metadata/003.yml +39 -0
  22. data/fixtures/vcr_cassettes/examples/channel_metadata/004.yml +73 -0
  23. data/fixtures/vcr_cassettes/examples/channel_metadata/005.yml +73 -0
  24. data/fixtures/vcr_cassettes/examples/channel_metadata/006.yml +73 -0
  25. data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
  26. data/fixtures/vcr_cassettes/examples/grant/1944.yml +8 -9
  27. data/fixtures/vcr_cassettes/examples/grant/1945.yml +359 -9
  28. data/fixtures/vcr_cassettes/examples/grant/1946.yml +8 -9
  29. data/fixtures/vcr_cassettes/examples/grant/1947.yml +8 -9
  30. data/fixtures/vcr_cassettes/examples/grant/1948.yml +8 -9
  31. data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted.yml +7 -7
  32. data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted_random_iv.yml +46 -0
  33. data/fixtures/vcr_cassettes/examples/history/include_token__encrypted.yml +6 -6
  34. data/fixtures/vcr_cassettes/examples/history/include_token__encrypted_random_iv.yml +46 -0
  35. data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted.yml +6 -6
  36. data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted_random_iv.yml +45 -0
  37. data/fixtures/vcr_cassettes/examples/list_push_provisions/001.yml +46 -0
  38. data/fixtures/vcr_cassettes/examples/list_push_provisions/002.yml +45 -0
  39. data/fixtures/vcr_cassettes/examples/list_push_provisions/003.yml +45 -0
  40. data/fixtures/vcr_cassettes/examples/memberships/001.yml +111 -0
  41. data/fixtures/vcr_cassettes/examples/memberships/002.yml +111 -0
  42. data/fixtures/vcr_cassettes/examples/memberships/003.yml +111 -0
  43. data/fixtures/vcr_cassettes/examples/memberships/004.yml +111 -0
  44. data/fixtures/vcr_cassettes/examples/memberships/005.yml +147 -0
  45. data/fixtures/vcr_cassettes/examples/memberships/006.yml +147 -0
  46. data/fixtures/vcr_cassettes/examples/memberships/007.yml +147 -0
  47. data/fixtures/vcr_cassettes/examples/memberships/008.yml +147 -0
  48. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/001.yml +45 -0
  49. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/002.yml +45 -0
  50. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/003.yml +45 -0
  51. data/fixtures/vcr_cassettes/examples/remove_device_from_push/001.yml +45 -0
  52. data/fixtures/vcr_cassettes/examples/remove_device_from_push/002.yml +45 -0
  53. data/fixtures/vcr_cassettes/examples/remove_device_from_push/003.yml +45 -0
  54. data/fixtures/vcr_cassettes/examples/uuid_metadata/001.yml +39 -0
  55. data/fixtures/vcr_cassettes/examples/uuid_metadata/002.yml +39 -0
  56. data/fixtures/vcr_cassettes/examples/uuid_metadata/003.yml +39 -0
  57. data/fixtures/vcr_cassettes/examples/uuid_metadata/004.yml +39 -0
  58. data/fixtures/vcr_cassettes/examples/uuid_metadata/005.yml +73 -0
  59. data/fixtures/vcr_cassettes/examples/uuid_metadata/006.yml +73 -0
  60. data/fixtures/vcr_cassettes/examples/uuid_metadata/007.yml +73 -0
  61. data/fixtures/vcr_cassettes/examples/uuid_metadata/008.yml +73 -0
  62. data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
  63. data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
  64. data/fixtures/vcr_cassettes/lib/events/get_channel_members.yml +37 -0
  65. data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
  66. data/fixtures/vcr_cassettes/lib/events/get_memberships1.yml +37 -0
  67. data/fixtures/vcr_cassettes/lib/events/get_memberships2.yml +37 -0
  68. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata1.yml +76 -0
  69. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata2.yml +76 -0
  70. data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
  71. data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
  72. data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
  73. data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
  74. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships1.yml} +8 -9
  75. data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → remove_memberships2.yml} +8 -9
  76. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata1.yml +76 -0
  77. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata2.yml +76 -0
  78. data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
  79. data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
  80. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_add.yml → set_memberships1.yml} +8 -9
  81. data/fixtures/vcr_cassettes/lib/events/set_memberships2.yml +39 -0
  82. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata1.yml +78 -0
  83. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata2.yml +78 -0
  84. data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
  85. data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
  86. data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
  87. data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
  88. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
  89. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
  90. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
  91. data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
  92. data/lib/pubnub/client.rb +22 -16
  93. data/lib/pubnub/client/events.rb +4 -2
  94. data/lib/pubnub/client/helpers.rb +1 -1
  95. data/lib/pubnub/configuration.rb +1 -0
  96. data/lib/pubnub/constants.rb +20 -18
  97. data/lib/pubnub/crypto.rb +22 -8
  98. data/lib/pubnub/event.rb +39 -17
  99. data/lib/pubnub/event/formatter.rb +4 -0
  100. data/lib/pubnub/event/signature.rb +22 -7
  101. data/lib/pubnub/events/add_channels_to_push.rb +29 -13
  102. data/lib/pubnub/events/get_all_channels_metadata.rb +104 -0
  103. data/lib/pubnub/events/get_all_uuid_metadata.rb +104 -0
  104. data/lib/pubnub/events/get_channel_members.rb +120 -0
  105. data/lib/pubnub/events/{update_space.rb → get_channel_metadata.rb} +27 -27
  106. data/lib/pubnub/events/get_memberships.rb +120 -0
  107. data/lib/pubnub/events/{create_space.rb → get_uuid_metadata.rb} +27 -25
  108. data/lib/pubnub/events/grant.rb +10 -1
  109. data/lib/pubnub/events/history.rb +2 -1
  110. data/lib/pubnub/events/list_push_provisions.rb +29 -12
  111. data/lib/pubnub/events/publish.rb +2 -2
  112. data/lib/pubnub/events/remove_channel_members.rb +137 -0
  113. data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +13 -13
  114. data/lib/pubnub/events/remove_channels_from_push.rb +29 -13
  115. data/lib/pubnub/events/remove_device_from_push.rb +30 -14
  116. data/lib/pubnub/events/remove_memberships.rb +137 -0
  117. data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +13 -13
  118. data/lib/pubnub/events/set_channel_members.rb +140 -0
  119. data/lib/pubnub/events/{manage_members.rb → set_channel_metadata.rb} +32 -38
  120. data/lib/pubnub/events/set_memberships.rb +140 -0
  121. data/lib/pubnub/events/{create_user.rb → set_uuid_metadata.rb} +33 -17
  122. data/lib/pubnub/events/signal.rb +1 -1
  123. data/lib/pubnub/formatter.rb +31 -4
  124. data/lib/pubnub/pam.rb +2 -11
  125. data/lib/pubnub/subscribe_callback.rb +1 -3
  126. data/lib/pubnub/subscribe_event/formatter.rb +30 -19
  127. data/lib/pubnub/subscriber.rb +5 -6
  128. data/lib/pubnub/validators/add_channels_to_push.rb +52 -0
  129. data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
  130. data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
  131. data/lib/pubnub/validators/get_channel_members.rb +39 -0
  132. data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
  133. data/lib/pubnub/validators/get_memberships.rb +39 -0
  134. data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
  135. data/lib/pubnub/validators/grant.rb +37 -2
  136. data/lib/pubnub/validators/list_push_provisions.rb +43 -0
  137. data/lib/pubnub/validators/remove_channel_members.rb +52 -0
  138. data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
  139. data/lib/pubnub/validators/remove_channels_from_push.rb +52 -0
  140. data/lib/pubnub/validators/remove_device_from_push.rb +43 -0
  141. data/lib/pubnub/validators/remove_memberships.rb +52 -0
  142. data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
  143. data/lib/pubnub/validators/set_channel_members.rb +78 -0
  144. data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
  145. data/lib/pubnub/validators/set_memberships.rb +78 -0
  146. data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
  147. data/lib/pubnub/version.rb +1 -1
  148. data/spec/examples/add_channels_to_push_spec.rb +178 -0
  149. data/spec/examples/{grant_examples_spec.rb → grant_examples_1_spec.rb} +0 -8973
  150. data/spec/examples/grant_examples_2_spec.rb +9107 -0
  151. data/spec/examples/history_examples_spec.rb +87 -9
  152. data/spec/examples/list_push_provisions_spec.rb +164 -0
  153. data/spec/examples/presence_examples_spec.rb +222 -186
  154. data/spec/examples/publish_examples_spec.rb +864 -0
  155. data/spec/examples/remove_channel_members_examples_spec.rb +100 -0
  156. data/spec/examples/remove_channel_metadata_examples_spec.rb +89 -0
  157. data/spec/examples/remove_channels_from_push_spec.rb +164 -0
  158. data/spec/examples/remove_device_from_push_spec.rb +164 -0
  159. data/spec/examples/remove_memberships_examples_spec.rb +121 -0
  160. data/spec/examples/remove_uuid_metadata_examples_spec.rb +107 -0
  161. data/spec/examples/revoke_examples_1_spec.rb +27013 -0
  162. data/spec/examples/revoke_examples_2_spec.rb +27012 -0
  163. data/spec/examples/revoke_examples_3_spec.rb +17967 -0
  164. data/spec/examples/set_channel_members_examples_spec.rb +99 -0
  165. data/spec/examples/set_channel_metadata_examples_spec.rb +93 -0
  166. data/spec/examples/set_memberships_examples_spec.rb +122 -0
  167. data/spec/examples/set_uuid_metadata_examples_spec.rb +114 -0
  168. data/spec/examples/status_request_message_count_exceeded_spec.rb +4 -1
  169. data/spec/examples/subscribe_examples_1_spec.rb +26972 -0
  170. data/spec/examples/subscribe_examples_2_spec.rb +19575 -0
  171. data/spec/lib/connection_callback_spec.rb +4 -3
  172. data/spec/lib/event/formatter_spec.rb +22 -0
  173. data/spec/lib/events/channel_metadata_spec.rb +58 -0
  174. data/spec/lib/events/grant_spec.rb +3 -2
  175. data/spec/lib/events/membership_spec.rb +51 -21
  176. data/spec/lib/events/presence_delta_spec.rb +9 -6
  177. data/spec/lib/events/presence_spec.rb +13 -7
  178. data/spec/lib/events/subscribe_spec.rb +104 -65
  179. data/spec/lib/events/uuid_metadata_spec.rb +86 -0
  180. data/spec/lib/multiple_ciphers_spec.rb +16 -4
  181. data/spec/lib/subscribe_event/formatter_spec.rb +22 -0
  182. data/spec/lib/super_admin_spec.rb +8 -4
  183. data/spec/spec_helper.rb +24 -8
  184. metadata +153 -65
  185. data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
  186. data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
  187. data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
  188. data/fixtures/vcr_cassettes/lib/events/get_members.yml +0 -38
  189. data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
  190. data/fixtures/vcr_cassettes/lib/events/get_space_memberships.yml +0 -38
  191. data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
  192. data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
  193. data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
  194. data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
  195. data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
  196. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
  197. data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
  198. data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
  199. data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
  200. data/lib/pubnub/events/get_members.rb +0 -93
  201. data/lib/pubnub/events/get_space.rb +0 -74
  202. data/lib/pubnub/events/get_space_memberships.rb +0 -93
  203. data/lib/pubnub/events/get_spaces.rb +0 -90
  204. data/lib/pubnub/events/get_user.rb +0 -74
  205. data/lib/pubnub/events/get_users.rb +0 -90
  206. data/lib/pubnub/events/manage_memberships.rb +0 -105
  207. data/lib/pubnub/events/update_user.rb +0 -86
  208. data/lib/pubnub/validators/create_space.rb +0 -44
  209. data/lib/pubnub/validators/create_user.rb +0 -44
  210. data/lib/pubnub/validators/delete_space.rb +0 -32
  211. data/lib/pubnub/validators/delete_user.rb +0 -32
  212. data/lib/pubnub/validators/get_members.rb +0 -32
  213. data/lib/pubnub/validators/get_space.rb +0 -32
  214. data/lib/pubnub/validators/get_space_memberships.rb +0 -32
  215. data/lib/pubnub/validators/get_spaces.rb +0 -16
  216. data/lib/pubnub/validators/get_user.rb +0 -32
  217. data/lib/pubnub/validators/get_users.rb +0 -16
  218. data/lib/pubnub/validators/manage_members.rb +0 -45
  219. data/lib/pubnub/validators/manage_memberships.rb +0 -45
  220. data/lib/pubnub/validators/push.rb +0 -43
  221. data/lib/pubnub/validators/update_space.rb +0 -45
  222. data/lib/pubnub/validators/update_user.rb +0 -45
  223. data/spec/examples/revoke_examples_spec.rb +0 -71950
  224. data/spec/examples/subscribe_examples_spec.rb +0 -45184
  225. data/spec/lib/events/space_spec.rb +0 -75
  226. data/spec/lib/events/user_spec.rb +0 -75
@@ -0,0 +1,100 @@
1
+ require "spec_helper"
2
+
3
+ describe Pubnub::HereNow do
4
+ around :each do |example|
5
+ @fired = false
6
+
7
+ @callback = -> (_envelope) do
8
+ @fired = true
9
+ end
10
+
11
+ @pubnub = Pubnub.new(
12
+ publish_key: "pub-a-mock-key",
13
+ subscribe_key: 'sub-a-mock-key',
14
+ uuid: "ruby-test-uuid-client-one",
15
+ auth_key: "ruby-test-auth-client-one",
16
+ random_iv: false
17
+ )
18
+
19
+ example.run_with_retry retry: 10
20
+ end
21
+
22
+ it "__channel__channel___uuids__ruby-test-uuid-client-one___include__count___http_sync__true___cipher_key__nil___random_iv__false___callback__nil_" do
23
+ VCR.use_cassette("examples/channel_members/004", record: :once) do
24
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
25
+ @pubnub.set_uuid_metadata(uuid: nil, metadata: { name: 'magnum' }, http_sync: true)
26
+ @pubnub.set_channel_members(channel: 'channel', uuids: [{ uuid: 'ruby-test-uuid-client-one' }], http_sync: true)
27
+ envelope = @pubnub.remove_channel_members(
28
+ channel: 'channel',
29
+ uuids: ['ruby-test-uuid-client-one'],
30
+ include: { count: true },
31
+ http_sync: true
32
+ )
33
+
34
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
35
+ expect(envelope.error?).to eq false
36
+ expect(@pubnub.env[:random_iv]).to eq false
37
+
38
+ expect(envelope.status[:code]).to eq(200)
39
+ expect(envelope.status[:operation]).to eq(:remove_channel_members)
40
+ expect(envelope.status[:category]).to eq(:ack)
41
+ expect(envelope.status[:client_request].path.split('/')[-2]).to eq("channel")
42
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
43
+ end
44
+ end
45
+
46
+ it "__channel__channel___uuids__bob___include__nil___http_sync__true___cipher_key__enigma___random_iv__false___callback__nil_" do
47
+ VCR.use_cassette("examples/channel_members/005", record: :once) do
48
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
49
+ @pubnub.set_uuid_metadata(uuid: 'bob', metadata: { name: 'magnum' }, http_sync: true)
50
+ @pubnub.set_channel_members(channel: 'channel', uuids: [{ uuid: 'bob' }], http_sync: true)
51
+ pubnub = Pubnub.new(
52
+ publish_key: "pub-a-mock-key",
53
+ subscribe_key: 'sub-a-mock-key',
54
+ uuid: "ruby-test-uuid-client-one",
55
+ auth_key: "ruby-test-auth-client-one",
56
+ random_iv: false,
57
+ cipher_key: "enigma"
58
+ )
59
+
60
+ envelope = pubnub.remove_channel_members(channel: 'channel', uuids: ['bob'], http_sync: true)
61
+
62
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
63
+ expect(envelope.error?).to eq false
64
+ expect(pubnub.env[:random_iv]).to eq false
65
+
66
+ expect(envelope.status[:code]).to eq(200)
67
+ expect(envelope.status[:operation]).to eq(:remove_channel_members)
68
+ expect(envelope.status[:category]).to eq(:ack)
69
+ expect(envelope.status[:client_request].path.split('/')[-2]).to eq("channel")
70
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
71
+ end
72
+ end
73
+
74
+ it "__channel__channel___uuids__bob___http_sync__true___cipher_key__enigma___random_iv__true___callback__nil_" do
75
+ VCR.use_cassette("examples/channel_members/006", record: :once) do
76
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
77
+ @pubnub.set_uuid_metadata(uuid: 'bob', metadata: { name: 'magnum' }, http_sync: true)
78
+ @pubnub.set_channel_members(channel: 'channel', uuids: [{ uuid: 'bob' }], http_sync: true)
79
+ pubnub = Pubnub.new(
80
+ publish_key: "pub-a-mock-key",
81
+ subscribe_key: 'sub-a-mock-key',
82
+ uuid: "ruby-test-uuid-client-one",
83
+ auth_key: "ruby-test-auth-client-one",
84
+ cipher_key: "enigma"
85
+ )
86
+
87
+ envelope = pubnub.remove_channel_members(channel: 'channel', uuids: ['bob'], http_sync: true)
88
+
89
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
90
+ expect(envelope.error?).to eq false
91
+ expect(pubnub.env[:random_iv]).to eq true
92
+
93
+ expect(envelope.status[:code]).to eq(200)
94
+ expect(envelope.status[:operation]).to eq(:remove_channel_members)
95
+ expect(envelope.status[:category]).to eq(:ack)
96
+ expect(envelope.status[:client_request].path.split('/')[-2]).to eq("channel")
97
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,89 @@
1
+ require "spec_helper"
2
+
3
+ describe Pubnub::HereNow do
4
+ around :each do |example|
5
+ @fired = false
6
+
7
+ @callback = -> (_envelope) do
8
+ @fired = true
9
+ end
10
+
11
+ @pubnub = Pubnub.new(
12
+ publish_key: "pub-a-mock-key",
13
+ subscribe_key: 'sub-a-mock-key',
14
+ uuid: "ruby-test-uuid-client-one",
15
+ auth_key: "ruby-test-auth-client-one",
16
+ random_iv: false
17
+ )
18
+
19
+ example.run_with_retry retry: 10
20
+ end
21
+
22
+ it "__channel__channel___http_sync__true___cipher_key__nil___random_iv__false___callback__nil_" do
23
+ VCR.use_cassette("examples/channel_metadata/004", record: :once) do
24
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
25
+ envelope = @pubnub.remove_channel_metadata(channel: 'channel', http_sync: true)
26
+
27
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
28
+ expect(envelope.error?).to eq false
29
+ expect(@pubnub.env[:random_iv]).to eq false
30
+
31
+ expect(envelope.status[:code]).to eq(200)
32
+ expect(envelope.status[:operation]).to eq(:remove_channel_metadata)
33
+ expect(envelope.status[:category]).to eq(:ack)
34
+ expect(envelope.status[:client_request].path.split('/').last).to eq("channel")
35
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
36
+ end
37
+ end
38
+
39
+ it "__channel__channel___http_sync__true___cipher_key__enigma___random_iv__false___callback__nil_" do
40
+ VCR.use_cassette("examples/channel_metadata/005", record: :once) do
41
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
42
+ pubnub = Pubnub.new(
43
+ publish_key: "pub-a-mock-key",
44
+ subscribe_key: 'sub-a-mock-key',
45
+ uuid: "ruby-test-uuid-client-one",
46
+ auth_key: "ruby-test-auth-client-one",
47
+ random_iv: false,
48
+ cipher_key: "enigma"
49
+ )
50
+
51
+ envelope = pubnub.remove_channel_metadata(channel: 'channel', http_sync: true)
52
+
53
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
54
+ expect(envelope.error?).to eq false
55
+ expect(pubnub.env[:random_iv]).to eq false
56
+
57
+ expect(envelope.status[:code]).to eq(200)
58
+ expect(envelope.status[:operation]).to eq(:remove_channel_metadata)
59
+ expect(envelope.status[:category]).to eq(:ack)
60
+ expect(envelope.status[:client_request].path.split('/').last).to eq("channel")
61
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
62
+ end
63
+ end
64
+
65
+ it "__channel__channel___http_sync__true___cipher_key__enigma___random_iv__true___callback__nil_" do
66
+ VCR.use_cassette("examples/channel_metadata/006", record: :once) do
67
+ @pubnub.set_channel_metadata(channel: 'channel', metadata: { name: 'some_name' }, http_sync: true)
68
+ pubnub = Pubnub.new(
69
+ publish_key: "pub-a-mock-key",
70
+ subscribe_key: 'sub-a-mock-key',
71
+ uuid: "ruby-test-uuid-client-one",
72
+ auth_key: "ruby-test-auth-client-one",
73
+ cipher_key: "enigma"
74
+ )
75
+
76
+ envelope = pubnub.remove_channel_metadata(channel: 'channel', http_sync: true)
77
+
78
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
79
+ expect(envelope.error?).to eq false
80
+ expect(pubnub.env[:random_iv]).to eq true
81
+
82
+ expect(envelope.status[:code]).to eq(200)
83
+ expect(envelope.status[:operation]).to eq(:remove_channel_metadata)
84
+ expect(envelope.status[:category]).to eq(:ack)
85
+ expect(envelope.status[:client_request].path.split('/').last).to eq("channel")
86
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,164 @@
1
+ require "spec_helper"
2
+
3
+ describe Pubnub::RemoveChannelsFromPush do
4
+ around :each do |example|
5
+ @fired = false
6
+
7
+ @callback = -> (_envelope) do
8
+ @fired = true
9
+ end
10
+
11
+ @pubnub = Pubnub.new(
12
+ subscribe_key: 'sub-a-mock-key',
13
+ uuid: "ruby-test-uuid-client-one",
14
+ auth_key: "ruby-test-auth-client-one"
15
+ )
16
+
17
+ @device_token = '815ee724ccb0a6a84dc303be8ccbaa00d1c84dde6bcae6721b08f92100951113'
18
+
19
+ example.run_with_retry retry: 1
20
+ end
21
+
22
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__true___callback__nil_" do
23
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
24
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: true)
25
+
26
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
27
+ expect(envelope.error?).to eq false
28
+
29
+ expect(envelope.status[:code]).to eq(200)
30
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
31
+ expect(envelope.status[:category]).to eq(:ack)
32
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
33
+
34
+ expect(envelope.result[:code]).to eq(200)
35
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
36
+ end
37
+ end
38
+
39
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__true___callback___block_" do
40
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
41
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: true, &@callback)
42
+
43
+ expect(@fired).to eq true
44
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
45
+ expect(envelope.error?).to eq false
46
+
47
+ expect(envelope.status[:code]).to eq(200)
48
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
49
+ expect(envelope.status[:category]).to eq(:ack)
50
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
51
+
52
+ expect(envelope.result[:code]).to eq(200)
53
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
54
+ end
55
+ end
56
+
57
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__true___callback___lambda_" do
58
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
59
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: true, callback: @callback)
60
+
61
+ expect(@fired).to eq true
62
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
63
+ expect(envelope.error?).to eq false
64
+
65
+ expect(envelope.status[:code]).to eq(200)
66
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
67
+ expect(envelope.status[:category]).to eq(:ack)
68
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
69
+
70
+ expect(envelope.result[:code]).to eq(200)
71
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
72
+ end
73
+ end
74
+
75
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__false___callback__nil_" do
76
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
77
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: false)
78
+ envelope = envelope.value
79
+
80
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
81
+ expect(envelope.error?).to eq false
82
+
83
+ expect(envelope.status[:code]).to eq(200)
84
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
85
+ expect(envelope.status[:category]).to eq(:ack)
86
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
87
+
88
+ expect(envelope.result[:code]).to eq(200)
89
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
90
+ end
91
+ end
92
+
93
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__false___callback___block_" do
94
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
95
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: false, &@callback)
96
+ envelope = envelope.value
97
+
98
+ expect(@fired).to eq true
99
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
100
+ expect(envelope.error?).to eq false
101
+
102
+ expect(envelope.status[:code]).to eq(200)
103
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
104
+ expect(envelope.status[:category]).to eq(:ack)
105
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
106
+
107
+ expect(envelope.result[:code]).to eq(200)
108
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
109
+ end
110
+ end
111
+
112
+ it "001_channel___demo1_demo2___push_gateway___apns___push_token__valid___http_sync__false___callback___lambda_" do
113
+ VCR.use_cassette("examples/remove_channels_from_push/001", record: :once) do
114
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns', channel: 'demo1,demo2', http_sync: false, callback: @callback)
115
+ envelope = envelope.value
116
+
117
+ expect(@fired).to eq true
118
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
119
+ expect(envelope.error?).to eq false
120
+
121
+ expect(envelope.status[:code]).to eq(200)
122
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
123
+ expect(envelope.status[:category]).to eq(:ack)
124
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
125
+
126
+ expect(envelope.result[:code]).to eq(200)
127
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
128
+ end
129
+ end
130
+
131
+ it "002_channel___demo1_demo2___push_gateway___apns2___push_token__valid___topic__ruby_test___environment__default___http_sync__true___callback__nil_" do
132
+ VCR.use_cassette("examples/remove_channels_from_push/002", record: :once) do
133
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns2', channel: 'demo1,demo2', topic: 'ruby_test', http_sync: true)
134
+
135
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
136
+ expect(envelope.error?).to eq false
137
+
138
+ expect(envelope.status[:code]).to eq(200)
139
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
140
+ expect(envelope.status[:category]).to eq(:ack)
141
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
142
+
143
+ expect(envelope.result[:code]).to eq(200)
144
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
145
+ end
146
+ end
147
+
148
+ it "003_channel___demo1_demo2___push_gateway___apns2___push_token__valid___topic__ruby_test___environment__production___http_sync__true___callback__nil_" do
149
+ VCR.use_cassette("examples/remove_channels_from_push/003", record: :once) do
150
+ envelope = @pubnub.remove_channels_from_push(push_token: @device_token, push_gateway: 'apns2', channel: 'demo1,demo2', topic: 'ruby_test', environment: 'production', http_sync: true)
151
+
152
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
153
+ expect(envelope.error?).to eq false
154
+
155
+ expect(envelope.status[:code]).to eq(200)
156
+ expect(envelope.status[:operation]).to eq(:remove_channels_from_push)
157
+ expect(envelope.status[:category]).to eq(:ack)
158
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
159
+
160
+ expect(envelope.result[:code]).to eq(200)
161
+ expect(envelope.result[:operation]).to eq(:remove_channels_from_push)
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,164 @@
1
+ require "spec_helper"
2
+
3
+ describe Pubnub::RemoveDeviceFromPush do
4
+ around :each do |example|
5
+ @fired = false
6
+
7
+ @callback = -> (_envelope) do
8
+ @fired = true
9
+ end
10
+
11
+ @pubnub = Pubnub.new(
12
+ subscribe_key: 'sub-a-mock-key',
13
+ uuid: "ruby-test-uuid-client-one",
14
+ auth_key: "ruby-test-auth-client-one"
15
+ )
16
+
17
+ @device_token = '815ee724ccb0a6a84dc303be8ccbaa00d1c84dde6bcae6721b08f92100951113'
18
+
19
+ example.run_with_retry retry: 1
20
+ end
21
+
22
+ it "001_push_gateway___apns___push_token__valid___http_sync__true___callback__nil_" do
23
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
24
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: true)
25
+
26
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
27
+ expect(envelope.error?).to eq false
28
+
29
+ expect(envelope.status[:code]).to eq(200)
30
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
31
+ expect(envelope.status[:category]).to eq(:ack)
32
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
33
+
34
+ expect(envelope.result[:code]).to eq(200)
35
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
36
+ end
37
+ end
38
+
39
+ it "001_push_gateway___apns___push_token__valid___http_sync__true___callback___block_" do
40
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
41
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: true, &@callback)
42
+
43
+ expect(@fired).to eq true
44
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
45
+ expect(envelope.error?).to eq false
46
+
47
+ expect(envelope.status[:code]).to eq(200)
48
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
49
+ expect(envelope.status[:category]).to eq(:ack)
50
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
51
+
52
+ expect(envelope.result[:code]).to eq(200)
53
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
54
+ end
55
+ end
56
+
57
+ it "001_push_gateway___apns___push_token__valid___http_sync__true___callback___lambda_" do
58
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
59
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: true, callback: @callback)
60
+
61
+ expect(@fired).to eq true
62
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
63
+ expect(envelope.error?).to eq false
64
+
65
+ expect(envelope.status[:code]).to eq(200)
66
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
67
+ expect(envelope.status[:category]).to eq(:ack)
68
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
69
+
70
+ expect(envelope.result[:code]).to eq(200)
71
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
72
+ end
73
+ end
74
+
75
+ it "001_push_gateway___apns___push_token__valid___http_sync__false___callback__nil_" do
76
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
77
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: false)
78
+ envelope = envelope.value
79
+
80
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
81
+ expect(envelope.error?).to eq false
82
+
83
+ expect(envelope.status[:code]).to eq(200)
84
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
85
+ expect(envelope.status[:category]).to eq(:ack)
86
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
87
+
88
+ expect(envelope.result[:code]).to eq(200)
89
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
90
+ end
91
+ end
92
+
93
+ it "001_push_gateway___apns___push_token__valid___http_sync__false___callback___block_" do
94
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
95
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: false, &@callback)
96
+ envelope = envelope.value
97
+
98
+ expect(@fired).to eq true
99
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
100
+ expect(envelope.error?).to eq false
101
+
102
+ expect(envelope.status[:code]).to eq(200)
103
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
104
+ expect(envelope.status[:category]).to eq(:ack)
105
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
106
+
107
+ expect(envelope.result[:code]).to eq(200)
108
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
109
+ end
110
+ end
111
+
112
+ it "001_push_gateway___apns___push_token__valid___http_sync__false___callback___lambda_" do
113
+ VCR.use_cassette("examples/remove_device_from_push/001", record: :once) do
114
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns', http_sync: false, callback: @callback)
115
+ envelope = envelope.value
116
+
117
+ expect(@fired).to eq true
118
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
119
+ expect(envelope.error?).to eq false
120
+
121
+ expect(envelope.status[:code]).to eq(200)
122
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
123
+ expect(envelope.status[:category]).to eq(:ack)
124
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
125
+
126
+ expect(envelope.result[:code]).to eq(200)
127
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
128
+ end
129
+ end
130
+
131
+ it "002_push_gateway___apns2___push_token__valid___topic__ruby_test___environment__default___http_sync__true___callback__nil_" do
132
+ VCR.use_cassette("examples/remove_device_from_push/002", record: :once) do
133
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns2', topic: 'ruby_test', http_sync: true)
134
+
135
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
136
+ expect(envelope.error?).to eq false
137
+
138
+ expect(envelope.status[:code]).to eq(200)
139
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
140
+ expect(envelope.status[:category]).to eq(:ack)
141
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
142
+
143
+ expect(envelope.result[:code]).to eq(200)
144
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
145
+ end
146
+ end
147
+
148
+ it "003_push_gateway___apns2___push_token__valid___topic__ruby_test___environment__production___http_sync__true___callback__nil_" do
149
+ VCR.use_cassette("examples/remove_device_from_push/003", record: :once) do
150
+ envelope = @pubnub.remove_device_from_push(push_token: @device_token, push_gateway: 'apns2', topic: 'ruby_test', environment: 'production', http_sync: true)
151
+
152
+ expect(envelope.is_a?(Pubnub::Envelope)).to eq true
153
+ expect(envelope.error?).to eq false
154
+
155
+ expect(envelope.status[:code]).to eq(200)
156
+ expect(envelope.status[:operation]).to eq(:remove_device_from_push)
157
+ expect(envelope.status[:category]).to eq(:ack)
158
+ expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", auth_key: "ruby-test-auth-client-one", :origin => "ps.pndsn.com"})
159
+
160
+ expect(envelope.result[:code]).to eq(200)
161
+ expect(envelope.result[:operation]).to eq(:remove_device_from_push)
162
+ end
163
+ end
164
+ end