ably 1.2.6 → 1.2.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.
- checksums.yaml +4 -4
- data/.github/workflows/check.yml +5 -3
- data/CHANGELOG.md +21 -0
- data/SPEC.md +294 -294
- data/ably.gemspec +3 -2
- data/lib/ably/models/protocol_message.rb +0 -1
- data/lib/ably/realtime/connection/websocket_transport.rb +1 -1
- data/lib/ably/realtime/connection.rb +30 -2
- data/lib/ably/version.rb +1 -1
- data/spec/acceptance/realtime/auth_spec.rb +0 -7
- data/spec/acceptance/realtime/client_spec.rb +1 -1
- data/spec/acceptance/realtime/connection_failures_spec.rb +7 -7
- data/spec/acceptance/realtime/message_spec.rb +1 -1
- data/spec/acceptance/rest/base_spec.rb +4 -5
- data/spec/acceptance/rest/client_spec.rb +3 -3
- data/spec/unit/models/protocol_message_spec.rb +0 -8
- metadata +7 -7
data/SPEC.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Ably Realtime & REST Client Library 1.2.
|
1
|
+
# Ably Realtime & REST Client Library 1.2.8 Specification
|
2
2
|
|
3
3
|
### Ably::Realtime::Auth
|
4
4
|
_(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_spec.rb))_
|
@@ -55,7 +55,7 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
|
|
55
55
|
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
56
56
|
* [rejects a TokenDetails object with an incompatible client_id and fails with an exception](./spec/acceptance/realtime/auth_spec.rb#L287)
|
57
57
|
* when already authenticated with a valid token
|
58
|
-
* [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#
|
58
|
+
* [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L700)
|
59
59
|
* when INITIALIZED
|
60
60
|
* [obtains a token and connects to Ably (#RTC8c, #RTC8b1)](./spec/acceptance/realtime/auth_spec.rb#L328)
|
61
61
|
* when CONNECTING
|
@@ -78,97 +78,97 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
|
|
78
78
|
* when auth fails
|
79
79
|
* [transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)](./spec/acceptance/realtime/auth_spec.rb#L612)
|
80
80
|
* when the authCallback fails
|
81
|
-
* [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#
|
81
|
+
* [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#L638)
|
82
82
|
* when upgrading capabilities
|
83
|
-
* [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#
|
83
|
+
* [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L657)
|
84
84
|
* when downgrading capabilities (#RTC8a1)
|
85
|
-
* [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#
|
85
|
+
* [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#L683)
|
86
86
|
* #authorize_async
|
87
|
-
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
87
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L734)
|
88
88
|
* server initiated AUTH ProtocolMessage
|
89
89
|
* when received
|
90
|
-
* [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#
|
90
|
+
* [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#L755)
|
91
91
|
* when not received
|
92
|
-
* [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#
|
92
|
+
* [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#L778)
|
93
93
|
* #auth_params
|
94
|
-
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
94
|
+
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L804)
|
95
95
|
* #auth_params_sync
|
96
|
-
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
96
|
+
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L813)
|
97
97
|
* #auth_header
|
98
|
-
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
98
|
+
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L820)
|
99
99
|
* #auth_header_sync
|
100
|
-
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
100
|
+
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L829)
|
101
101
|
* #client_id_validated?
|
102
102
|
* when using basic auth
|
103
103
|
* before connected
|
104
|
-
* [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#
|
104
|
+
* [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#L842)
|
105
105
|
* once connected
|
106
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
107
|
-
* [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#
|
106
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L849)
|
107
|
+
* [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#L856)
|
108
108
|
* when using a token string
|
109
109
|
* with a valid client_id
|
110
110
|
* before connected
|
111
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
112
|
-
* [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#
|
111
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L870)
|
112
|
+
* [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#L875)
|
113
113
|
* once connected
|
114
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
115
|
-
* [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#
|
114
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L882)
|
115
|
+
* [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#L889)
|
116
116
|
* with no client_id (anonymous)
|
117
117
|
* before connected
|
118
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
118
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L902)
|
119
119
|
* once connected
|
120
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
120
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L909)
|
121
121
|
* with a wildcard client_id (anonymous)
|
122
122
|
* before connected
|
123
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
123
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L922)
|
124
124
|
* once connected
|
125
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
125
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L929)
|
126
126
|
* when using a token
|
127
127
|
* with a client_id
|
128
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
128
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L943)
|
129
129
|
* once connected
|
130
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
130
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L949)
|
131
131
|
* with no client_id (anonymous)
|
132
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
132
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L961)
|
133
133
|
* once connected
|
134
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
134
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L967)
|
135
135
|
* with a wildcard client_id (anonymous)
|
136
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
136
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L979)
|
137
137
|
* once connected
|
138
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
138
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L985)
|
139
139
|
* when using a token request with a client_id
|
140
|
-
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#
|
140
|
+
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#L998)
|
141
141
|
* once connected
|
142
|
-
* [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#
|
142
|
+
* [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#L1004)
|
143
143
|
* deprecated #authorise
|
144
|
-
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#
|
145
|
-
* [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#
|
144
|
+
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1018)
|
145
|
+
* [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1024)
|
146
146
|
* when using JWT
|
147
147
|
* when using auth_url
|
148
148
|
* when credentials are valid
|
149
|
-
* [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#
|
149
|
+
* [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#L1043)
|
150
150
|
* when credentials are wrong
|
151
|
-
* [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#
|
151
|
+
* [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#L1056)
|
152
152
|
* when token is expired
|
153
|
-
* [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#
|
153
|
+
* [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#L1068)
|
154
154
|
* when using auth_callback
|
155
155
|
* when credentials are valid
|
156
|
-
* [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#
|
156
|
+
* [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#L1093)
|
157
157
|
* when credentials are invalid
|
158
|
-
* [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#
|
158
|
+
* [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#L1108)
|
159
159
|
* when the client is initialized with ClientOptions and the token is a JWT token
|
160
160
|
* when credentials are valid
|
161
|
-
* [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#
|
161
|
+
* [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#L1124)
|
162
162
|
* when credentials are invalid
|
163
|
-
* [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#
|
163
|
+
* [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#L1139)
|
164
164
|
* when JWT token expires
|
165
|
-
* [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#
|
165
|
+
* [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#L1165)
|
166
166
|
* and an AUTH procol message is received
|
167
|
-
* [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#
|
167
|
+
* [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#L1193)
|
168
168
|
* when the JWT token request includes a client_id
|
169
|
-
* [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#
|
169
|
+
* [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#L1221)
|
170
170
|
* when the JWT token request includes a subscribe-only capability
|
171
|
-
* [client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions](./spec/acceptance/realtime/auth_spec.rb#
|
171
|
+
* [client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions](./spec/acceptance/realtime/auth_spec.rb#L1239)
|
172
172
|
|
173
173
|
### Ably::Realtime::Channel#history
|
174
174
|
_(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
|
@@ -286,255 +286,255 @@ _(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/chan
|
|
286
286
|
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#L830)
|
287
287
|
* automatic channel recovery
|
288
288
|
* when an ATTACH request times out
|
289
|
-
* [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#
|
289
|
+
* [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#L857)
|
290
290
|
* if a subsequent ATTACHED is received on an ATTACHED channel
|
291
|
-
* [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
292
|
-
* [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
293
|
-
* [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
291
|
+
* [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L871)
|
292
|
+
* [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L885)
|
293
|
+
* [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L901)
|
294
294
|
* #publish
|
295
295
|
* when channel is attached (#RTL6c1)
|
296
|
-
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#
|
296
|
+
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L926)
|
297
297
|
* #(RTL17)
|
298
298
|
* when channel is initialized
|
299
|
-
* [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#
|
299
|
+
* [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L939)
|
300
300
|
* when channel is attaching
|
301
|
-
* [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#
|
301
|
+
* [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L954)
|
302
302
|
* when channel is detaching
|
303
|
-
* [stops sending message](./spec/acceptance/realtime/channel_spec.rb#
|
303
|
+
* [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L977)
|
304
304
|
* when channel is detached
|
305
|
-
* [stops sending message](./spec/acceptance/realtime/channel_spec.rb#
|
305
|
+
* [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L1005)
|
306
306
|
* when channel is failed
|
307
|
-
* [errors when trying to send a message](./spec/acceptance/realtime/channel_spec.rb#
|
307
|
+
* [errors when trying to send a message](./spec/acceptance/realtime/channel_spec.rb#L1031)
|
308
308
|
* when channel is not attached in state Initializing (#RTL6c1)
|
309
|
-
* [publishes messages immediately and does not implicitly attach (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#
|
309
|
+
* [publishes messages immediately and does not implicitly attach (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1049)
|
310
310
|
* when channel is Attaching (#RTL6c1)
|
311
|
-
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#
|
311
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1066)
|
312
312
|
* when channel is Detaching (#RTL6c1)
|
313
|
-
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#
|
313
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1091)
|
314
314
|
* when channel is Detached (#RTL6c1)
|
315
|
-
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#
|
315
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1121)
|
316
316
|
* with :queue_messages client option set to false (#RTL6c4)
|
317
317
|
* and connection state connected (#RTL6c4)
|
318
|
-
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#
|
318
|
+
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L1154)
|
319
319
|
* and connection state initialized (#RTL6c4)
|
320
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
320
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1163)
|
321
321
|
* and connection state connecting (#RTL6c4)
|
322
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
322
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1173)
|
323
323
|
* and connection state disconnected (#RTL6c4)
|
324
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
324
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
|
325
325
|
* and connection state suspended (#RTL6c4)
|
326
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
326
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
|
327
327
|
* and connection state closing (#RTL6c4)
|
328
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
328
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
|
329
329
|
* and connection state closed (#RTL6c4)
|
330
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
330
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
|
331
331
|
* and the channel state is failed (#RTL6c4)
|
332
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
332
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1209)
|
333
333
|
* with name and data arguments
|
334
|
-
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#
|
334
|
+
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1227)
|
335
335
|
* and additional attributes
|
336
|
-
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#
|
336
|
+
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1240)
|
337
337
|
* and additional invalid attributes
|
338
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
338
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1253)
|
339
339
|
* with an array of Hash objects with :name and :data attributes
|
340
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
340
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1267)
|
341
341
|
* with an array of Message objects
|
342
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
342
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1295)
|
343
343
|
* nil attributes
|
344
344
|
* when name is nil
|
345
|
-
* [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
345
|
+
* [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1319)
|
346
346
|
* when data is nil
|
347
|
-
* [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
347
|
+
* [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1343)
|
348
348
|
* with neither name or data attributes
|
349
|
-
* [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
349
|
+
* [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#L1367)
|
350
350
|
* with two invalid message out of 12
|
351
351
|
* before client_id is known (validated)
|
352
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
352
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1391)
|
353
353
|
* when client_id is known (validated)
|
354
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
354
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1411)
|
355
355
|
* only invalid messages
|
356
356
|
* before client_id is known (validated)
|
357
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
357
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1430)
|
358
358
|
* when client_id is known (validated)
|
359
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
359
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1449)
|
360
360
|
* with many many messages and many connections simultaneously
|
361
|
-
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#
|
361
|
+
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L1463)
|
362
362
|
* with more than allowed messages in a single publish
|
363
|
-
* [rejects the publish](./spec/acceptance/realtime/channel_spec.rb#
|
363
|
+
* [rejects the publish](./spec/acceptance/realtime/channel_spec.rb#L1486)
|
364
364
|
* identified clients
|
365
365
|
* when authenticated with a wildcard client_id
|
366
366
|
* with a valid client_id in the message
|
367
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
367
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1506)
|
368
368
|
* with a wildcard client_id in the message
|
369
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
369
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1520)
|
370
370
|
* with a non-String client_id in the message
|
371
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
371
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1527)
|
372
372
|
* with an empty client_id in the message
|
373
|
-
* [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#
|
373
|
+
* [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#L1534)
|
374
374
|
* when authenticated with a Token string with an implicit client_id
|
375
375
|
* before the client is CONNECTED and the client's identity has been obtained
|
376
376
|
* with a valid client_id in the message
|
377
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
377
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1556)
|
378
378
|
* with an invalid client_id in the message
|
379
|
-
* [succeeds in the client library ( while connecting ) but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#
|
379
|
+
* [succeeds in the client library ( while connecting ) but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#L1571)
|
380
380
|
* with an empty client_id in the message
|
381
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
381
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1585)
|
382
382
|
* after the client is CONNECTED and the client's identity is known
|
383
383
|
* with a valid client_id in the message
|
384
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
384
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1601)
|
385
385
|
* with an invalid client_id in the message
|
386
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
386
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1615)
|
387
387
|
* with an empty client_id in the message
|
388
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
388
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1624)
|
389
389
|
* when authenticated with a valid client_id
|
390
390
|
* with a valid client_id
|
391
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
391
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1646)
|
392
392
|
* with a wildcard client_id in the message
|
393
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
393
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1660)
|
394
394
|
* with an invalid client_id in the message
|
395
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
395
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1667)
|
396
396
|
* with an empty client_id in the message
|
397
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
397
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1674)
|
398
398
|
* when anonymous and no client_id
|
399
399
|
* with a client_id in the message
|
400
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
400
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1695)
|
401
401
|
* with a wildcard client_id in the message
|
402
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
402
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1702)
|
403
403
|
* with an empty client_id in the message
|
404
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
404
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1709)
|
405
405
|
* message size exceeded (#TO3l8)
|
406
406
|
* and max_message_size is default (65536 bytes)
|
407
|
-
* [should allow to send a message (32 bytes)](./spec/acceptance/realtime/channel_spec.rb#
|
408
|
-
* [should not allow to send a message (700000 bytes)](./spec/acceptance/realtime/channel_spec.rb#
|
407
|
+
* [should allow to send a message (32 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1732)
|
408
|
+
* [should not allow to send a message (700000 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1742)
|
409
409
|
* and max_message_size is customized (11 bytes)
|
410
410
|
* and the message size is 30 bytes
|
411
|
-
* [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#
|
411
|
+
* [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1763)
|
412
412
|
* and max_message_size is nil
|
413
413
|
* and the message size is 30 bytes
|
414
|
-
* [should allow to send a message](./spec/acceptance/realtime/channel_spec.rb#
|
414
|
+
* [should allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1785)
|
415
415
|
* and the message size is 65537 bytes
|
416
|
-
* [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#
|
416
|
+
* [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1804)
|
417
417
|
* #subscribe
|
418
418
|
* with an event argument
|
419
|
-
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
419
|
+
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1824)
|
420
420
|
* before attach
|
421
|
-
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#
|
421
|
+
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L1834)
|
422
422
|
* with no event argument
|
423
|
-
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#
|
423
|
+
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L1848)
|
424
424
|
* with a callback that raises an exception
|
425
|
-
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#
|
425
|
+
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#L1860)
|
426
426
|
* many times with different event names
|
427
|
-
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#
|
427
|
+
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L1881)
|
428
428
|
* #unsubscribe
|
429
429
|
* with an event argument
|
430
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
430
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1906)
|
431
431
|
* with no event argument
|
432
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
432
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1921)
|
433
433
|
* when connection state changes to
|
434
434
|
* :failed
|
435
435
|
* an :attaching channel
|
436
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
436
|
+
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1946)
|
437
437
|
* an :attached channel
|
438
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
439
|
-
* [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
438
|
+
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1963)
|
439
|
+
* [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1977)
|
440
440
|
* a :detached channel
|
441
|
-
* [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
441
|
+
* [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1993)
|
442
442
|
* a :failed channel
|
443
|
-
* [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
443
|
+
* [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L2016)
|
444
444
|
* a channel ATTACH request
|
445
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
445
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2038)
|
446
446
|
* :closed
|
447
447
|
* an :attached channel
|
448
|
-
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
448
|
+
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2054)
|
449
449
|
* an :attaching channel (#RTL3b)
|
450
|
-
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#
|
450
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L2067)
|
451
451
|
* a :detached channel
|
452
|
-
* [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
452
|
+
* [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2084)
|
453
453
|
* a :failed channel
|
454
|
-
* [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
454
|
+
* [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2107)
|
455
455
|
* a channel ATTACH request when connection CLOSED
|
456
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
456
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2129)
|
457
457
|
* a channel ATTACH request when connection CLOSING
|
458
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
458
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2143)
|
459
459
|
* :suspended
|
460
460
|
* an :attaching channel
|
461
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
461
|
+
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2159)
|
462
462
|
* an :attached channel
|
463
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
463
|
+
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2173)
|
464
464
|
* reattaching (#RTN15c3)
|
465
|
-
* [transitions state automatically to :attaching once the connection is re-established ](./spec/acceptance/realtime/channel_spec.rb#
|
466
|
-
* [sends ATTACH_RESUME flag when reattaching (RTL4j)](./spec/acceptance/realtime/channel_spec.rb#
|
465
|
+
* [transitions state automatically to :attaching once the connection is re-established ](./spec/acceptance/realtime/channel_spec.rb#L2186)
|
466
|
+
* [sends ATTACH_RESUME flag when reattaching (RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2201)
|
467
467
|
* a :detached channel
|
468
|
-
* [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
468
|
+
* [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2223)
|
469
469
|
* a :failed channel
|
470
|
-
* [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
470
|
+
* [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2246)
|
471
471
|
* a channel ATTACH request when connection SUSPENDED (#RTL4b)
|
472
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
472
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L2270)
|
473
473
|
* :connected
|
474
474
|
* a :suspended channel
|
475
|
-
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#
|
475
|
+
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2286)
|
476
476
|
* when re-attach attempt fails
|
477
|
-
* [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#
|
477
|
+
* [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2305)
|
478
478
|
* :disconnected
|
479
479
|
* with an initialized channel
|
480
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
480
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2334)
|
481
481
|
* with an attaching channel
|
482
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
482
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2347)
|
483
483
|
* with an attached channel
|
484
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
484
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2362)
|
485
485
|
* with a detached channel
|
486
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
486
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2378)
|
487
487
|
* with a failed channel
|
488
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
488
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2402)
|
489
489
|
* #presence
|
490
|
-
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#
|
490
|
+
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L2417)
|
491
491
|
* #set_options (#RTL16a)
|
492
492
|
* when channel is attaching
|
493
493
|
* behaves like an update that sends ATTACH message
|
494
|
-
* [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#
|
494
|
+
* [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2434)
|
495
495
|
* when channel is attached
|
496
496
|
* behaves like an update that sends ATTACH message
|
497
|
-
* [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#
|
497
|
+
* [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2434)
|
498
498
|
* when channel is initialized
|
499
|
-
* [doesn't send ATTACH message](./spec/acceptance/realtime/channel_spec.rb#
|
499
|
+
* [doesn't send ATTACH message](./spec/acceptance/realtime/channel_spec.rb#L2467)
|
500
500
|
* channel state change
|
501
|
-
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#
|
501
|
+
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L2483)
|
502
502
|
* ChannelStateChange object
|
503
|
-
* [has current state](./spec/acceptance/realtime/channel_spec.rb#
|
504
|
-
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#
|
505
|
-
* [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#
|
506
|
-
* [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#
|
503
|
+
* [has current state](./spec/acceptance/realtime/channel_spec.rb#L2492)
|
504
|
+
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#L2501)
|
505
|
+
* [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#L2510)
|
506
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#L2528)
|
507
507
|
* on failure
|
508
|
-
* [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#
|
508
|
+
* [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#L2543)
|
509
509
|
* #resume (#RTL2f)
|
510
|
-
* [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#
|
511
|
-
* [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#
|
512
|
-
* [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#
|
510
|
+
* [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#L2558)
|
511
|
+
* [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2566)
|
512
|
+
* [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2585)
|
513
513
|
* when a connection resume fails
|
514
|
-
* [is false when channel_serial goes nil (RTP5a1) and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#
|
515
|
-
* [is true when channel_serial is intact and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#
|
514
|
+
* [is false when channel_serial goes nil (RTP5a1) and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2607)
|
515
|
+
* [is true when channel_serial is intact and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2625)
|
516
516
|
* moves to
|
517
517
|
* suspended
|
518
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
519
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#
|
518
|
+
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2652)
|
519
|
+
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2675)
|
520
520
|
* failed
|
521
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
522
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#
|
521
|
+
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2652)
|
522
|
+
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2675)
|
523
523
|
* when it receives a server-initiated DETACHED (#RTL13)
|
524
524
|
* and channel is initialized (#RTL13)
|
525
|
-
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#
|
525
|
+
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#L2710)
|
526
526
|
* and channel is failed
|
527
|
-
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#
|
527
|
+
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#L2731)
|
528
528
|
* and channel is attached
|
529
|
-
* [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#
|
529
|
+
* [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2747)
|
530
530
|
* and channel is suspended
|
531
|
-
* [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#
|
531
|
+
* [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2776)
|
532
532
|
* when connection is no longer connected
|
533
|
-
* [will not attempt to reattach (#RTL13c)](./spec/acceptance/realtime/channel_spec.rb#
|
533
|
+
* [will not attempt to reattach (#RTL13c)](./spec/acceptance/realtime/channel_spec.rb#L2808)
|
534
534
|
* and channel is attaching
|
535
|
-
* [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#
|
535
|
+
* [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#L2834)
|
536
536
|
* when it receives an ERROR ProtocolMessage
|
537
|
-
* [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#
|
537
|
+
* [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#L2883)
|
538
538
|
|
539
539
|
### Ably::Realtime::Channels
|
540
540
|
_(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
|
@@ -591,54 +591,54 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
591
591
|
* [sets Client#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L127)
|
592
592
|
* with a wildcard client_id token
|
593
593
|
* and an explicit client_id in ClientOptions
|
594
|
-
*
|
594
|
+
* [allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#L145)
|
595
595
|
* and client_id omitted in ClientOptions
|
596
|
-
* [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#
|
596
|
+
* [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#L161)
|
597
597
|
* with an invalid wildcard "*" :client_id
|
598
|
-
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#
|
598
|
+
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#L177)
|
599
599
|
* realtime connection settings
|
600
600
|
* defaults
|
601
|
-
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#
|
602
|
-
* [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#
|
601
|
+
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#L186)
|
602
|
+
* [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#L191)
|
603
603
|
* overriden in ClientOptions
|
604
|
-
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#
|
605
|
-
* [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#
|
604
|
+
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L200)
|
605
|
+
* [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L205)
|
606
606
|
* #connection
|
607
|
-
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#
|
607
|
+
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L214)
|
608
608
|
* #channels
|
609
|
-
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#
|
609
|
+
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L221)
|
610
610
|
* #auth
|
611
|
-
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#
|
611
|
+
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L228)
|
612
612
|
* #request (#RSC19*)
|
613
613
|
* get
|
614
|
-
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#
|
614
|
+
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#L240)
|
615
615
|
* 404 request to invalid URL
|
616
|
-
* [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#
|
616
|
+
* [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#L249)
|
617
617
|
* paged results
|
618
|
-
* [provides paging](./spec/acceptance/realtime/client_spec.rb#
|
618
|
+
* [provides paging](./spec/acceptance/realtime/client_spec.rb#L263)
|
619
619
|
* post
|
620
|
-
* [supports post](./spec/acceptance/realtime/client_spec.rb#
|
620
|
+
* [supports post](./spec/acceptance/realtime/client_spec.rb#L294)
|
621
621
|
* delete
|
622
|
-
* [supports delete](./spec/acceptance/realtime/client_spec.rb#
|
622
|
+
* [supports delete](./spec/acceptance/realtime/client_spec.rb#L308)
|
623
623
|
* patch
|
624
|
-
* [supports patch](./spec/acceptance/realtime/client_spec.rb#
|
624
|
+
* [supports patch](./spec/acceptance/realtime/client_spec.rb#L325)
|
625
625
|
* put
|
626
|
-
* [supports put](./spec/acceptance/realtime/client_spec.rb#
|
626
|
+
* [supports put](./spec/acceptance/realtime/client_spec.rb#L349)
|
627
627
|
* #publish (#TBC)
|
628
|
-
* [publishing a message implicity connects and publishes the message successfully on the provided channel](./spec/acceptance/realtime/client_spec.rb#
|
629
|
-
* [publishing does not result in a channel being created](./spec/acceptance/realtime/client_spec.rb#
|
630
|
-
* [publishing supports an array of Message objects](./spec/acceptance/realtime/client_spec.rb#
|
631
|
-
* [publishing supports an array of Hash objects](./spec/acceptance/realtime/client_spec.rb#
|
632
|
-
* [publishing on a closed connection fails](./spec/acceptance/realtime/client_spec.rb#
|
628
|
+
* [publishing a message implicity connects and publishes the message successfully on the provided channel](./spec/acceptance/realtime/client_spec.rb#L367)
|
629
|
+
* [publishing does not result in a channel being created](./spec/acceptance/realtime/client_spec.rb#L379)
|
630
|
+
* [publishing supports an array of Message objects](./spec/acceptance/realtime/client_spec.rb#L407)
|
631
|
+
* [publishing supports an array of Hash objects](./spec/acceptance/realtime/client_spec.rb#L419)
|
632
|
+
* [publishing on a closed connection fails](./spec/acceptance/realtime/client_spec.rb#L431)
|
633
633
|
* with extras
|
634
|
-
* [publishing supports extras](./spec/acceptance/realtime/client_spec.rb#
|
634
|
+
* [publishing supports extras](./spec/acceptance/realtime/client_spec.rb#L395)
|
635
635
|
* queue_messages ClientOption
|
636
636
|
* when true
|
637
|
-
* [will queue messages whilst connecting and publish once connected](./spec/acceptance/realtime/client_spec.rb#
|
637
|
+
* [will queue messages whilst connecting and publish once connected](./spec/acceptance/realtime/client_spec.rb#L447)
|
638
638
|
* when false
|
639
|
-
* [will reject messages on an initializing connection](./spec/acceptance/realtime/client_spec.rb#
|
639
|
+
* [will reject messages on an initializing connection](./spec/acceptance/realtime/client_spec.rb#L464)
|
640
640
|
* with more than allowed messages in a single publish
|
641
|
-
* [rejects the publish](./spec/acceptance/realtime/client_spec.rb#
|
641
|
+
* [rejects the publish](./spec/acceptance/realtime/client_spec.rb#L481)
|
642
642
|
|
643
643
|
### Ably::Realtime::Connection failures
|
644
644
|
_(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
|
@@ -646,7 +646,7 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
|
|
646
646
|
* authentication failure
|
647
647
|
* when API key is invalid
|
648
648
|
* with invalid app part of the key
|
649
|
-
* [enters the failed state and returns
|
649
|
+
* [enters the failed state and returns an invalid credentials error](./spec/acceptance/realtime/connection_failures_spec.rb#L29)
|
650
650
|
* with invalid key name part of the key
|
651
651
|
* [enters the failed state and returns an authorization error](./spec/acceptance/realtime/connection_failures_spec.rb#L44)
|
652
652
|
* with auth_url
|
@@ -800,7 +800,7 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
|
|
800
800
|
* that expire
|
801
801
|
* opening a new connection
|
802
802
|
* with almost expired tokens
|
803
|
-
*
|
803
|
+
* [renews token every time after it expires](./spec/acceptance/realtime/connection_spec.rb#L107)
|
804
804
|
* with immediately expired token and no fallback hosts
|
805
805
|
* [renews the token on connect, and makes one immediate subsequent attempt to obtain a new token (#RSA4b)](./spec/acceptance/realtime/connection_spec.rb#L137)
|
806
806
|
* when disconnected_retry_timeout is 0.5 seconds
|
@@ -825,191 +825,191 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
|
|
825
825
|
* string
|
826
826
|
* [sets the Client#client_id and Auth#client_id once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L374)
|
827
827
|
* that is incompatible with the current client client_id
|
828
|
-
*
|
828
|
+
* [fails the connection](./spec/acceptance/realtime/connection_spec.rb#L386)
|
829
829
|
* wildcard
|
830
|
-
* [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#
|
830
|
+
* [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L400)
|
831
831
|
* initialization state changes
|
832
832
|
* with implicit #connect
|
833
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
833
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L432)
|
834
834
|
* with explicit #connect
|
835
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
835
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L438)
|
836
836
|
* #connect with no fallbacks
|
837
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
838
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
839
|
-
* [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#
|
837
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L448)
|
838
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L453)
|
839
|
+
* [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#L460)
|
840
840
|
* when can't connect to host
|
841
|
-
* [logs error on failed connection attempt](./spec/acceptance/realtime/connection_spec.rb#
|
841
|
+
* [logs error on failed connection attempt](./spec/acceptance/realtime/connection_spec.rb#L489)
|
842
842
|
* when explicitly reconnecting disconnected/suspended connection in retry (#RTN11c)
|
843
843
|
* when suspended
|
844
|
-
* [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#
|
844
|
+
* [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L529)
|
845
845
|
* when disconnected
|
846
|
-
* [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#
|
846
|
+
* [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L563)
|
847
847
|
* when reconnecting a failed connection
|
848
|
-
* [transitions all channels state to initialized and cleares error_reason](./spec/acceptance/realtime/connection_spec.rb#
|
848
|
+
* [transitions all channels state to initialized and cleares error_reason](./spec/acceptance/realtime/connection_spec.rb#L593)
|
849
849
|
* with invalid auth details
|
850
|
-
* [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#
|
850
|
+
* [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#L621)
|
851
851
|
* when already connected
|
852
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
852
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L637)
|
853
853
|
* connection#id
|
854
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
854
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L651)
|
855
855
|
* connection#key
|
856
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
856
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L658)
|
857
857
|
* once connected
|
858
858
|
* connection#id
|
859
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
860
|
-
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
861
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
859
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L669)
|
860
|
+
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L676)
|
861
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L683)
|
862
862
|
* connection#key
|
863
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
864
|
-
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#
|
865
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
863
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L692)
|
864
|
+
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L699)
|
865
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L706)
|
866
866
|
* following a previous connection being opened and closed
|
867
|
-
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#
|
867
|
+
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L716)
|
868
868
|
* when closing
|
869
|
-
* [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#
|
869
|
+
* [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L733)
|
870
870
|
* #msgSerial
|
871
871
|
* when messages are queued for publish before a connection is established
|
872
|
-
* [the msgSerial is always incrementing (and not reset when the new connection is established) ensuring messages are never de-duped by the realtime service](./spec/acceptance/realtime/connection_spec.rb#
|
872
|
+
* [the msgSerial is always incrementing (and not reset when the new connection is established) ensuring messages are never de-duped by the realtime service](./spec/acceptance/realtime/connection_spec.rb#L757)
|
873
873
|
* #close
|
874
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
875
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
874
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L789)
|
875
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L796)
|
876
876
|
* when already closed
|
877
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
877
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L807)
|
878
878
|
* when connection state is
|
879
879
|
* :initialized
|
880
|
-
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#
|
880
|
+
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L834)
|
881
881
|
* :connecting RTN12f
|
882
882
|
* :connected does not arrive when trying to close
|
883
|
-
* [moves to closed](./spec/acceptance/realtime/connection_spec.rb#
|
883
|
+
* [moves to closed](./spec/acceptance/realtime/connection_spec.rb#L852)
|
884
884
|
* :connected arrive when trying to close
|
885
|
-
* [moves to connected and then to closed](./spec/acceptance/realtime/connection_spec.rb#
|
885
|
+
* [moves to connected and then to closed](./spec/acceptance/realtime/connection_spec.rb#L879)
|
886
886
|
* :connected
|
887
|
-
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#
|
887
|
+
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#L900)
|
888
888
|
* with an unresponsive connection
|
889
|
-
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#
|
889
|
+
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L927)
|
890
890
|
* :suspended RTN12d
|
891
|
-
* [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#
|
891
|
+
* [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L956)
|
892
892
|
* :disconnected RTN12d
|
893
|
-
* [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#
|
893
|
+
* [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L991)
|
894
894
|
* #ping
|
895
|
-
* [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#
|
896
|
-
* [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#
|
897
|
-
* [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#
|
895
|
+
* [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#L1024)
|
896
|
+
* [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#L1034)
|
897
|
+
* [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#L1058)
|
898
898
|
* with incompatible states
|
899
899
|
* when not connected
|
900
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
900
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1071)
|
901
901
|
* when suspended
|
902
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
902
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1080)
|
903
903
|
* when failed
|
904
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
904
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1092)
|
905
905
|
* when closed
|
906
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
906
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1104)
|
907
907
|
* when it becomes closed
|
908
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
908
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1118)
|
909
909
|
* with a success block that raises an exception
|
910
|
-
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#
|
910
|
+
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L1131)
|
911
911
|
* when ping times out
|
912
|
-
* [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#
|
913
|
-
* [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#
|
912
|
+
* [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#L1145)
|
913
|
+
* [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#L1164)
|
914
914
|
* Heartbeats (#RTN23)
|
915
915
|
* heartbeat interval
|
916
916
|
* when reduced artificially
|
917
|
-
* [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
918
|
-
* [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
919
|
-
* [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
917
|
+
* [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1190)
|
918
|
+
* [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1200)
|
919
|
+
* [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1211)
|
920
920
|
* transport-level heartbeats are supported in the websocket transport
|
921
|
-
* [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#
|
922
|
-
* [receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#
|
921
|
+
* [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1226)
|
922
|
+
* [receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1235)
|
923
923
|
* with websocket heartbeats disabled (undocumented)
|
924
|
-
* [does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#
|
925
|
-
* [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#
|
924
|
+
* [does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1251)
|
925
|
+
* [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1260)
|
926
926
|
* #details
|
927
|
-
* [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#
|
928
|
-
* [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#
|
929
|
-
* [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#
|
927
|
+
* [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#L1278)
|
928
|
+
* [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1285)
|
929
|
+
* [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1294)
|
930
930
|
* with a different default connection_state_ttl
|
931
|
-
* [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#
|
931
|
+
* [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#L1315)
|
932
932
|
* recovery
|
933
933
|
* #recovery_key
|
934
|
-
* [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#
|
935
|
-
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#
|
934
|
+
* [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#L1352)
|
935
|
+
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L1382)
|
936
936
|
* opening a new connection using a recently disconnected connection's #recovery_key
|
937
937
|
* connection#id after recovery
|
938
|
-
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#
|
938
|
+
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#L1394)
|
939
939
|
* when messages have been sent whilst the old connection is disconnected
|
940
940
|
* the new connection
|
941
|
-
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#
|
941
|
+
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L1416)
|
942
942
|
* when messages have been published
|
943
943
|
* the new connection
|
944
|
-
* [uses the correct msgSerial from the old connection](./spec/acceptance/realtime/connection_spec.rb#
|
944
|
+
* [uses the correct msgSerial from the old connection](./spec/acceptance/realtime/connection_spec.rb#L1445)
|
945
945
|
* when messages are published before the new connection is recovered
|
946
946
|
* the new connection
|
947
|
-
* [uses the correct msgSerial from the old connection for the queued messages](./spec/acceptance/realtime/connection_spec.rb#
|
947
|
+
* [uses the correct msgSerial from the old connection for the queued messages](./spec/acceptance/realtime/connection_spec.rb#L1475)
|
948
948
|
* with :recover option
|
949
949
|
* with invalid syntax
|
950
|
-
* [logs recovery decode error as a warning and connects successfully](./spec/acceptance/realtime/connection_spec.rb#
|
950
|
+
* [logs recovery decode error as a warning and connects successfully](./spec/acceptance/realtime/connection_spec.rb#L1522)
|
951
951
|
* with invalid connection key
|
952
|
-
* [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#
|
952
|
+
* [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#L1537)
|
953
953
|
* with many connections simultaneously
|
954
|
-
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
954
|
+
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L1556)
|
955
955
|
* when a state transition is unsupported
|
956
|
-
* [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#
|
956
|
+
* [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#L1576)
|
957
957
|
* protocol failure
|
958
958
|
* receiving an invalid ProtocolMessage
|
959
|
-
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#
|
959
|
+
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L1592)
|
960
960
|
* undocumented method
|
961
961
|
* #internet_up?
|
962
|
-
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
962
|
+
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1610)
|
963
963
|
* internet up URL protocol
|
964
964
|
* when using TLS for the connection
|
965
|
-
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
965
|
+
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1621)
|
966
966
|
* when using a non-secured connection
|
967
|
-
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
967
|
+
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1631)
|
968
968
|
* when the Internet is up
|
969
|
-
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#
|
970
|
-
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
969
|
+
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L1662)
|
970
|
+
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1669)
|
971
971
|
* with a TLS connection
|
972
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
972
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1645)
|
973
973
|
* with a non-TLS connection
|
974
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
974
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1655)
|
975
975
|
* when the Internet is down
|
976
|
-
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#
|
977
|
-
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
976
|
+
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L1684)
|
977
|
+
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1691)
|
978
978
|
* state change side effects
|
979
979
|
* when connection enters the :disconnected state
|
980
|
-
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#
|
980
|
+
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L1705)
|
981
981
|
* when connection enters the :suspended state
|
982
|
-
* [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
982
|
+
* [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1738)
|
983
983
|
* when connection enters the :failed state
|
984
|
-
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
984
|
+
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1769)
|
985
985
|
* connection state change
|
986
|
-
* [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#
|
987
|
-
* [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#
|
986
|
+
* [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#L1783)
|
987
|
+
* [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#L1798)
|
988
988
|
* ConnectionStateChange object
|
989
|
-
* [has current state](./spec/acceptance/realtime/connection_spec.rb#
|
990
|
-
* [has a previous state](./spec/acceptance/realtime/connection_spec.rb#
|
991
|
-
* [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#
|
992
|
-
* [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#
|
989
|
+
* [has current state](./spec/acceptance/realtime/connection_spec.rb#L1806)
|
990
|
+
* [has a previous state](./spec/acceptance/realtime/connection_spec.rb#L1814)
|
991
|
+
* [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#L1822)
|
992
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#L1838)
|
993
993
|
* on failure
|
994
|
-
* [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#
|
994
|
+
* [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#L1851)
|
995
995
|
* retry_in
|
996
|
-
* [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#
|
997
|
-
*
|
998
|
-
* [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#
|
999
|
-
* [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#
|
996
|
+
* [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#L1866)
|
997
|
+
* [is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#L1873)
|
998
|
+
* [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#L1883)
|
999
|
+
* [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#L1893)
|
1000
1000
|
* whilst CONNECTED
|
1001
1001
|
* when a CONNECTED message is received (#RTN24)
|
1002
|
-
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#
|
1003
|
-
* [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#
|
1002
|
+
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1927)
|
1003
|
+
* [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#L1942)
|
1004
1004
|
* when a CONNECTED message with an error is received
|
1005
|
-
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#
|
1005
|
+
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1975)
|
1006
1006
|
* version params
|
1007
|
-
* [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#
|
1008
|
-
* [sends the lib version param agent (#RCS7d)](./spec/acceptance/realtime/connection_spec.rb#
|
1007
|
+
* [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#L1996)
|
1008
|
+
* [sends the lib version param agent (#RCS7d)](./spec/acceptance/realtime/connection_spec.rb#L2005)
|
1009
1009
|
* transport_params (#RTC1f)
|
1010
|
-
* [pases transport_params to query](./spec/acceptance/realtime/connection_spec.rb#
|
1010
|
+
* [pases transport_params to query](./spec/acceptance/realtime/connection_spec.rb#L2018)
|
1011
1011
|
* when changing default param
|
1012
|
-
* [overrides default param (#RTC1f1)](./spec/acceptance/realtime/connection_spec.rb#
|
1012
|
+
* [overrides default param (#RTC1f1)](./spec/acceptance/realtime/connection_spec.rb#L2031)
|
1013
1013
|
|
1014
1014
|
### Ably::Realtime::Channel Message
|
1015
1015
|
_(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/message_spec.rb))_
|
@@ -2323,16 +2323,16 @@ _(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
|
2323
2323
|
* using JSON protocol
|
2324
2324
|
* failed requests
|
2325
2325
|
* due to invalid Auth
|
2326
|
-
* [should raise an
|
2326
|
+
* [should raise an UnauthorizedRequest exception with a valid error message and code](./spec/acceptance/rest/base_spec.rb#L75)
|
2327
2327
|
* server error with JSON error response body
|
2328
|
-
* [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#
|
2328
|
+
* [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L95)
|
2329
2329
|
* 500 server error without a valid JSON response body
|
2330
|
-
* [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#
|
2330
|
+
* [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L108)
|
2331
2331
|
* token authentication failures
|
2332
2332
|
* when auth#token_renewable?
|
2333
|
-
* [should automatically reissue a token](./spec/acceptance/rest/base_spec.rb#
|
2333
|
+
* [should automatically reissue a token](./spec/acceptance/rest/base_spec.rb#L146)
|
2334
2334
|
* when NOT auth#token_renewable?
|
2335
|
-
* [should raise an TokenExpired exception](./spec/acceptance/rest/base_spec.rb#
|
2335
|
+
* [should raise an TokenExpired exception](./spec/acceptance/rest/base_spec.rb#L161)
|
2336
2336
|
|
2337
2337
|
### Ably::Rest::Channel
|
2338
2338
|
_(see [spec/acceptance/rest/channel_spec.rb](./spec/acceptance/rest/channel_spec.rb))_
|
@@ -5075,6 +5075,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
|
5075
5075
|
|
5076
5076
|
## Test summary
|
5077
5077
|
|
5078
|
-
* Passing tests:
|
5079
|
-
* Pending tests:
|
5080
|
-
* Failing tests:
|
5078
|
+
* Passing tests: 2495
|
5079
|
+
* Pending tests: 5
|
5080
|
+
* Failing tests: 0
|