<testsuite name="rspec" tests="1600" skipped="5" failures="0" errors="0" time="1199.602963" timestamp="2022-06-15T17:54:38+00:00" hostname="fv-az36-30">
<properties>
<property name="seed" value="9452"/>
</properties>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats returns a PaginatedResult object" file="./spec/acceptance/rest/stats_spec.rb" time="0.204155"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by hour should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.134691"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by day should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.056704"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with no options uses the minute interval by default" file="./spec/acceptance/rest/stats_spec.rb" time="0.175599"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval and :limit set to 3 to ensure only last years stats are included the REST API defaults to direction :backwards" file="./spec/acceptance/rest/stats_spec.rb" time="0.132834"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :start set to first interval, :limit set to 1 and direction :forwards returns the first interval stats as stats are provided forwards from :start" file="./spec/acceptance/rest/stats_spec.rb" time="0.113610"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :start set to first interval, :limit set to 1 and direction :forwards returns 3 pages of stats" file="./spec/acceptance/rest/stats_spec.rb" time="0.242490"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval, :limit set to 1 and direction :backwards returns the 3rd interval stats first as stats are provided backwards from :end" file="./spec/acceptance/rest/stats_spec.rb" time="0.068430"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval, :limit set to 1 and direction :backwards returns 3 pages of stats" file="./spec/acceptance/rest/stats_spec.rb" time="0.157717"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to previous year interval the REST API defaults to 100 items for pagination" file="./spec/acceptance/rest/stats_spec.rb" time="0.205267"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns token_requests data" file="./spec/acceptance/rest/stats_spec.rb" time="0.099746"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns outbound realtime all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.049156"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_granularity equal to :minute" file="./spec/acceptance/rest/stats_spec.rb" time="0.060273"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns all aggregated message data" file="./spec/acceptance/rest/stats_spec.rb" time="0.058467"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns zero value for any missing metrics" file="./spec/acceptance/rest/stats_spec.rb" time="0.072531"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns persisted presence all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.056308"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_id matching :start" file="./spec/acceptance/rest/stats_spec.rb" time="0.059253"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns inbound realtime message data" file="./spec/acceptance/rest/stats_spec.rb" time="0.047775"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns api_requests data" file="./spec/acceptance/rest/stats_spec.rb" time="0.047944"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_time matching :start Time" file="./spec/acceptance/rest/stats_spec.rb" time="0.057410"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns inbound realtime all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.050126"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns connections all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.047952"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 retrieves only one stat" file="./spec/acceptance/rest/stats_spec.rb" time="0.047944"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns channels all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.063356"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats when argument start is after end should raise an exception" file="./spec/acceptance/rest/stats_spec.rb" time="0.001940"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by month should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.046824"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) transport-level heartbeats are supported in the websocket transport provides the heartbeats argument in the websocket connection params (#RTN23b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.156886"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) transport-level heartbeats are supported in the websocket transport receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]" file="./spec/acceptance/realtime/connection_spec.rb" time="15.329572"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) with websocket heartbeats disabled (undocumented) receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]" file="./spec/acceptance/realtime/connection_spec.rb" time="15.357968"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) with websocket heartbeats disabled (undocumented) does not provide the heartbeats argument in the websocket connection params (#RTN23b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155544"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) heartbeat interval when reduced artificially disconnects the transport if no heartbeat received since last event received (#RTN23a)" file="./spec/acceptance/realtime/connection_spec.rb" time="8.545855"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) heartbeat interval when reduced artificially disconnects the transport if no heartbeat received since connected (#RTN23a)" file="./spec/acceptance/realtime/connection_spec.rb" time="5.492190"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol Heartbeats (#RTN23) heartbeat interval when reduced artificially is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.316624"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #msgSerial when messages are queued for publish before a connection is established the msgSerial is always incrementing (and not reset when the new connection is established) ensuring messages are never de-duped by the realtime service" file="./spec/acceptance/realtime/connection_spec.rb" time="1.498179"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? returns a Deferrable" file="./spec/acceptance/realtime/connection_spec.rb" time="0.212859"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is down calls the block with false" file="./spec/acceptance/realtime/connection_spec.rb" time="0.212628"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is down calls the failure callback of the Deferrable" file="./spec/acceptance/realtime/connection_spec.rb" time="0.214524"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is up calls the block with true" file="./spec/acceptance/realtime/connection_spec.rb" time="0.459480"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is up calls the success callback of the Deferrable" file="./spec/acceptance/realtime/connection_spec.rb" time="0.445970"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is up with a non-TLS connection checks the Internet up URL over TLS" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155569"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? when the Internet is up with a TLS connection checks the Internet up URL over TLS" file="./spec/acceptance/realtime/connection_spec.rb" time="0.153970"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? internet up URL protocol when using TLS for the connection uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt" file="./spec/acceptance/realtime/connection_spec.rb" time="0.154106"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol undocumented method #internet_up? internet up URL protocol when using a non-secured connection uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt" file="./spec/acceptance/realtime/connection_spec.rb" time="0.153806"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery with :recover option with invalid formatted value sent to server sets the #error_reason and moves the connection to FAILED" file="./spec/acceptance/realtime/connection_spec.rb" time="0.326879"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery with :recover option with expired (missing) value sent to server connects but sets the error reason and includes the reason in the state change" file="./spec/acceptance/realtime/connection_spec.rb" time="0.332120"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery with :recover option with invalid syntax raises an exception" file="./spec/acceptance/realtime/connection_spec.rb" time="0.001579"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery #recovery_key is composed of connection key and serial that is kept up to date with each message ACK received" file="./spec/acceptance/realtime/connection_spec.rb" time="0.570072"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery #recovery_key is available when connection is in one of the states: connecting, connected, disconnected" file="./spec/acceptance/realtime/connection_spec.rb" time="0.570429"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery #recovery_key is nil when connection is explicitly CLOSED" file="./spec/acceptance/realtime/connection_spec.rb" time="0.344029"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery opening a new connection using a recently disconnected connection&apos;s #recovery_key when messages have been sent whilst the old connection is disconnected the new connection recovers server-side queued messages" file="./spec/acceptance/realtime/connection_spec.rb" time="1.091547"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery opening a new connection using a recently disconnected connection&apos;s #recovery_key connection#id after recovery does not call a resume callback" file="./spec/acceptance/realtime/connection_spec.rb" time="1.243445"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery opening a new connection using a recently disconnected connection&apos;s #recovery_key connection#id after recovery remains the same" file="./spec/acceptance/realtime/connection_spec.rb" time="0.606872"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery opening a new connection using a recently disconnected connection&apos;s #recovery_key when messages are published before the new connection is recovered the new connection uses the correct msgSerial from the old connection for the queued messages" file="./spec/acceptance/realtime/connection_spec.rb" time="2.767038"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol recovery opening a new connection using a recently disconnected connection&apos;s #recovery_key when messages have been published the new connection uses the correct msgSerial from the old connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.778379"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization connects automatically" file="./spec/acceptance/realtime/connection_spec.rb" time="0.307570"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with :auto_connect option set to false connects when method #connect is called" file="./spec/acceptance/realtime/connection_spec.rb" time="0.362828"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with :auto_connect option set to false does not connect automatically" file="./spec/acceptance/realtime/connection_spec.rb" time="1.153132"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that are valid for the duration of the test with valid pre authorized token expiring in the future uses the existing token created by Auth" file="./spec/acceptance/realtime/connection_spec.rb" time="0.364578"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire when connected with a valid non-expired token that then expires following the connection being opened the server disconnects the client, and the client automatically renews the token and then reconnects" file="./spec/acceptance/realtime/connection_spec.rb" time="5.722199"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire when connected with a valid non-expired token that then expires following the connection being opened and subsequent token is invalid transitions the connection to the failed state" file="./spec/acceptance/realtime/connection_spec.rb" time="2.418716"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire when connected with a valid non-expired token that then expires following the connection being opened connection state retains messages published when disconnected three times during authentication" file="./spec/acceptance/realtime/connection_spec.rb" time="21.989799"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire opening a new connection with almost expired tokens renews token every time after it expires" file="./spec/acceptance/realtime/connection_spec.rb" time="6.461559"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire opening a new connection with immediately expired token and no fallback hosts renews the token on connect, and makes one immediate subsequent attempt to obtain a new token (#RSA4b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.604616"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire opening a new connection with immediately expired token and no fallback hosts when disconnected_retry_timeout is 0.5 seconds renews the token on connect, and continues to attempt renew based on the retry schedule" file="./spec/acceptance/realtime/connection_spec.rb" time="2.270238"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for renewable tokens that expire opening a new connection with immediately expired token and no fallback hosts using implicit token auth uses the primary host for subsequent connection and auth requests" file="./spec/acceptance/realtime/connection_spec.rb" time="0.791715"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for non-renewable tokens that are expired when connected transitions state to failed (#RSA4a)" file="./spec/acceptance/realtime/connection_spec.rb" time="4.345756"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth for non-renewable tokens that are expired opening a new connection transitions state to failed (#RSA4a)" file="./spec/acceptance/realtime/connection_spec.rb" time="1.504152"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth with opaque token string that contain an implicit client_id string sets the Client#client_id and Auth#client_id once CONNECTED" file="./spec/acceptance/realtime/connection_spec.rb" time="0.425592"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth with opaque token string that contain an implicit client_id string that is incompatible with the current client client_id fails the connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.334039"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization with token auth with opaque token string that contain an implicit client_id wildcard configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED" file="./spec/acceptance/realtime/connection_spec.rb" time="0.350238"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol intialization current_host is available immediately after the client is instanced" file="./spec/acceptance/realtime/connection_spec.rb" time="0.154751"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks calls the provided block on success even if state changes to disconnected first" file="./spec/acceptance/realtime/connection_spec.rb" time="0.298766"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/connection_spec.rb" time="0.153712"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks calls the Deferrable callback on success" file="./spec/acceptance/realtime/connection_spec.rb" time="0.312118"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks with invalid auth details calls the Deferrable errback only once on connection failure" file="./spec/acceptance/realtime/connection_spec.rb" time="1.241803"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#key is a string" file="./spec/acceptance/realtime/connection_spec.rb" time="0.295494"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#key is unique for every connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.462306"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#key is unique from the connection#id" file="./spec/acceptance/realtime/connection_spec.rb" time="0.310001"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#id is unique from the connection#key" file="./spec/acceptance/realtime/connection_spec.rb" time="0.321122"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#id is a string" file="./spec/acceptance/realtime/connection_spec.rb" time="0.301646"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks once connected connection#id is unique for every connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.469768"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when explicitly reconnecting disconnected/suspended connection in retry (#RTN11c) when suspended reconnects immediately" file="./spec/acceptance/realtime/connection_spec.rb" time="0.841729"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when explicitly reconnecting disconnected/suspended connection in retry (#RTN11c) when disconnected reconnects immediately" file="./spec/acceptance/realtime/connection_spec.rb" time="3.072673"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks connection#key is null before connecting" file="./spec/acceptance/realtime/connection_spec.rb" time="0.153760"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when reconnecting a failed connection transitions all channels state to initialized and cleares error_reason" file="./spec/acceptance/realtime/connection_spec.rb" time="0.547411"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when closing fails the deferrable before the connection is closed" file="./spec/acceptance/realtime/connection_spec.rb" time="0.297146"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks following a previous connection being opened and closed reconnects and is provided with a new connection ID and connection key from the server" file="./spec/acceptance/realtime/connection_spec.rb" time="0.481615"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when already connected does nothing and no further state changes are emitted" file="./spec/acceptance/realtime/connection_spec.rb" time="1.313552"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks when can&apos;t connect to host logs error on failed connection attempt" file="./spec/acceptance/realtime/connection_spec.rb" time="0.063419"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #connect with no fallbacks connection#id is null before connecting" file="./spec/acceptance/realtime/connection_spec.rb" time="0.153694"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol initialization state changes with implicit #connect are emitted in order" file="./spec/acceptance/realtime/connection_spec.rb" time="0.310563"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol initialization state changes with explicit #connect are emitted in order" file="./spec/acceptance/realtime/connection_spec.rb" time="0.310968"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/connection_spec.rb" time="0.308654"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close calls the Deferrable callback on success" file="./spec/acceptance/realtime/connection_spec.rb" time="0.346513"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when already closed does nothing and no further state changes are emitted" file="./spec/acceptance/realtime/connection_spec.rb" time="1.315404"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :connected changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage" file="./spec/acceptance/realtime/connection_spec.rb" time="1.351867"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :connected with an unresponsive connection force closes the connection when a :closed ProtocolMessage response is not received" file="./spec/acceptance/realtime/connection_spec.rb" time="2.298213"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :initialized changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE" file="./spec/acceptance/realtime/connection_spec.rb" time="1.155212"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :disconnected RTN12d immediatly closes connection" file="./spec/acceptance/realtime/connection_spec.rb" time="2.581458"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :suspended RTN12d immediatly closes connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.024405"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :connecting RTN12f :connected arrive when trying to close moves to connected and then to closed" file="./spec/acceptance/realtime/connection_spec.rb" time="0.327227"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #close when connection state is :connecting RTN12f :connected does not arrive when trying to close moves to closed" file="./spec/acceptance/realtime/connection_spec.rb" time="10.164793"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping echoes a heart beat (#RTN13a)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.338267"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping waits until the connection becomes CONNECTED when in the CONNETING state" file="./spec/acceptance/realtime/connection_spec.rb" time="0.329862"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping sends a unique ID in each protocol message (#RTN13e)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.384619"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with incompatible states when not connected fails the deferrable (#RTN13b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.171451"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with incompatible states when closed fails the deferrable (#RTN13b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.367669"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with incompatible states when it becomes closed fails the deferrable (#RTN13b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.315463"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with incompatible states when failed fails the deferrable (#RTN13b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.306584"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with incompatible states when suspended fails the deferrable (#RTN13b)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.320545"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping when ping times out yields to the block with a nil value" file="./spec/acceptance/realtime/connection_spec.rb" time="0.291547"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping when ping times out fails the deferrable logs a warning (#RTN13a, #RTN13c)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.406903"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #ping with a success block that raises an exception catches the exception and logs the error" file="./spec/acceptance/realtime/connection_spec.rb" time="0.365566"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol state change side effects when connection enters the :disconnected state queues messages to be sent and all channels remain attached" file="./spec/acceptance/realtime/connection_spec.rb" time="0.631339"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol state change side effects when connection enters the :suspended state moves the channels into the suspended state and prevents publishing of messages on those channels" file="./spec/acceptance/realtime/connection_spec.rb" time="0.511406"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol state change side effects when connection enters the :failed state sets all channels to failed and prevents publishing of messages on those channels" file="./spec/acceptance/realtime/connection_spec.rb" time="0.447396"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol version params sends the protocol version param v (#G4, #RTN2f)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155230"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol version params sends the lib version param agent (#RCS7d)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155863"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol transport_params (#RTC1f) pases transport_params to query" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155336"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol transport_params (#RTC1f) when changing default param overrides default param (#RTC1f1)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.155547"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol with many connections simultaneously opens each with a unique connection#id and connection#key" file="./spec/acceptance/realtime/connection_spec.rb" time="6.498804"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol protocol failure receiving an invalid ProtocolMessage emits an error on the connection and logs a fatal error message" file="./spec/acceptance/realtime/connection_spec.rb" time="0.304145"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #details contains the ConnectionDetails object once connected (#RTN21)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.294249"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #details is nil before connected" file="./spec/acceptance/realtime/connection_spec.rb" time="0.154943"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #details contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.517288"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #details with a different default connection_state_ttl updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails" file="./spec/acceptance/realtime/connection_spec.rb" time="0.309969"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change emits event to all and single subscribers" file="./spec/acceptance/realtime/connection_spec.rb" time="0.645564"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change emits a ConnectionStateChange object" file="./spec/acceptance/realtime/connection_spec.rb" time="0.299262"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object has a previous state" file="./spec/acceptance/realtime/connection_spec.rb" time="0.311628"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object contains a private API protocol_message attribute that is used for special state change events" file="./spec/acceptance/realtime/connection_spec.rb" time="0.288158"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object has the event that generated the state change (#TH5)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.297251"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object has an empty reason when there is no error" file="./spec/acceptance/realtime/connection_spec.rb" time="0.348498"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object has current state" file="./spec/acceptance/realtime/connection_spec.rb" time="0.304647"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object on failure has a reason Error object when there is an error on the connection" file="./spec/acceptance/realtime/connection_spec.rb" time="0.309371"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object retry_in is nil when a retry is not required" file="./spec/acceptance/realtime/connection_spec.rb" time="0.310660"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object retry_in contains the next retry period when an immediate reconnect will not occur" file="./spec/acceptance/realtime/connection_spec.rb" time="0.302035"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object retry_in is 0 when an immediate reconnect will occur" file="./spec/acceptance/realtime/connection_spec.rb" time="0.308676"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change ConnectionStateChange object retry_in is 0 when first attempt to connect fails" file="./spec/acceptance/realtime/connection_spec.rb" time="0.160968"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change whilst CONNECTED when a CONNECTED message is received (#RTN24) emits an UPDATE event" file="./spec/acceptance/realtime/connection_spec.rb" time="0.314713"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change whilst CONNECTED when a CONNECTED message is received (#RTN24) updates the ConnectionDetail and Connection attributes (#RTC8a1)" file="./spec/acceptance/realtime/connection_spec.rb" time="0.298019"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol connection state change whilst CONNECTED when a CONNECTED message with an error is received emits an UPDATE event" file="./spec/acceptance/realtime/connection_spec.rb" time="0.293661"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol when a state transition is unsupported logs the invalid state change as fatal" file="./spec/acceptance/realtime/connection_spec.rb" time="1.311270"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #serial connection serial is set to 0 when a message is received back" file="./spec/acceptance/realtime/connection_spec.rb" time="0.356481"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #serial connection serial is set to 1 when the second message is received" file="./spec/acceptance/realtime/connection_spec.rb" time="0.449613"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #serial connection serial is set to -1 when a new connection is opened" file="./spec/acceptance/realtime/connection_spec.rb" time="0.297807"></testcase>
<testcase classname="spec.acceptance.realtime.connection_spec" name="Ably::Realtime::Connection using JSON protocol #serial connection serial when a message is sent but the ACK has not yet been received the sent message msgSerial is 0 but the connection serial remains at -1" file="./spec/acceptance/realtime/connection_spec.rb" time="0.379161"></testcase>
<testcase classname="spec.acceptance.realtime.time_spec" name="Ably::Realtime::Client#time using JSON protocol fetching the service time returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/time_spec.rb" time="0.154944"></testcase>
<testcase classname="spec.acceptance.realtime.time_spec" name="Ably::Realtime::Client#time using JSON protocol fetching the service time should return the service time as a Time object" file="./spec/acceptance/realtime/time_spec.rb" time="0.260898"></testcase>
<testcase classname="spec.acceptance.realtime.time_spec" name="Ably::Realtime::Client#time using JSON protocol fetching the service time with reconfigured HTTP timeout should raise a timeout exception" file="./spec/acceptance/realtime/time_spec.rb" time="0.317943"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options with time range options :end with Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/presence_spec.rb" time="0.008643"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options with time range options :end with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/presence_spec.rb" time="0.007444"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options with time range options :start with Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/presence_spec.rb" time="0.007006"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options with time range options :start with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/presence_spec.rb" time="0.006940"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options with time range options when argument start is after end should raise an exception" file="./spec/acceptance/rest/presence_spec.rb" time="0.000897"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options limit options set to 1000 is passes the limit query param value 1000" file="./spec/acceptance/rest/presence_spec.rb" time="0.006887"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol #history with options limit options default is set to 100" file="./spec/acceptance/rest/presence_spec.rb" time="0.006630"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get returns current members on the channel with their action set to :present" file="./spec/acceptance/rest/presence_spec.rb" time="0.201186"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get with :limit option returns a paged response limiting number of members per page" file="./spec/acceptance/rest/presence_spec.rb" time="0.232606"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get with :connection_id option returns a list members filtered by the provided connection ID" file="./spec/acceptance/rest/presence_spec.rb" time="0.053156"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get with :connection_id option returns a list members filtered by the provided connection ID" file="./spec/acceptance/rest/presence_spec.rb" time="0.179960"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get with :client_id option returns a list members filtered by the provided client ID" file="./spec/acceptance/rest/presence_spec.rb" time="0.138154"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get default :limit defaults to a limit of 100" file="./spec/acceptance/rest/presence_spec.rb" time="0.007067"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #get with a non ASCII channel name stubbed correctly encodes the channel name" file="./spec/acceptance/rest/presence_spec.rb" time="0.006530"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #history returns recent presence activity" file="./spec/acceptance/rest/presence_spec.rb" time="0.136022"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #history default behaviour uses backwards direction" file="./spec/acceptance/rest/presence_spec.rb" time="0.113447"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #history with options direction: :backwards returns recent presence activity backwards with most recent history first" file="./spec/acceptance/rest/presence_spec.rb" time="0.170867"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol tested against presence fixture data set up in test app #history with options direction: :forwards returns recent presence activity forwards with most recent history last" file="./spec/acceptance/rest/presence_spec.rb" time="0.221686"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding with encoded fixture data #get decodes encoded and encryped presence fixture data automatically" file="./spec/acceptance/rest/presence_spec.rb" time="0.048108"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding with encoded fixture data #history decodes encoded and encryped presence fixture data automatically" file="./spec/acceptance/rest/presence_spec.rb" time="0.058000"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history invalid data #history logs a cipher error" file="./spec/acceptance/rest/presence_spec.rb" time="0.009350"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history invalid data #history returns the messages still encoded" file="./spec/acceptance/rest/presence_spec.rb" time="0.008408"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history invalid data #get logs a cipher error" file="./spec/acceptance/rest/presence_spec.rb" time="0.007655"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history invalid data #get returns the messages still encoded" file="./spec/acceptance/rest/presence_spec.rb" time="0.007614"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history valid decodeable content #history automaticaly decodes presence messages" file="./spec/acceptance/rest/presence_spec.rb" time="0.008348"></testcase>
<testcase classname="spec.acceptance.rest.presence_spec" name="Ably::Rest::Presence using JSON protocol decoding permutations using mocked #history valid decodeable content #get automaticaly decodes presence messages" file="./spec/acceptance/rest/presence_spec.rb" time="0.007642"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol accessing an existing channel object with different options overrides the existing channel options and returns the channel object (RSN3c)" file="./spec/acceptance/rest/channels_spec.rb" time="0.001383"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000974"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001006"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.000885"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.003886"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol #set_options (#RTL16) updates channel&apos;s options" file="./spec/acceptance/rest/channels_spec.rb" time="0.003190"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol #set_options (#RTL16) when providing Ably::Models::ChannelOptions object updates channel&apos;s options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001251"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol accessing an existing channel object without specifying any channel options returns the existing channel without modifying the channel options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001083"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using a frozen channel name behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001018"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using a frozen channel name behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000998"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using #get method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001040"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using #get method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.001029"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #unsubscribe with an event argument unsubscribes for a single event" file="./spec/acceptance/realtime/channel_spec.rb" time="1.522987"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #unsubscribe with no event argument unsubscribes for a single event" file="./spec/acceptance/realtime/channel_spec.rb" time="1.541279"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :disconnected with a failed channel has no effect on the channel states (#RTL3e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.408149"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :disconnected with an initialized channel has no effect on the channel states (#RTL3e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.341467"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :disconnected with an attaching channel has no effect on the channel states (#RTL3e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.302019"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :disconnected with an attached channel has no effect on the channel states (#RTL3e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.501820"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :disconnected with a detached channel has no effect on the channel states (#RTL3e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.615851"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed a channel ATTACH request when connection CLOSED fails the deferrable (#RTL4b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.359871"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed a :detached channel remains in the :detached state (#RTL3b)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.553000"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed an :attaching channel (#RTL3b) transitions state to :detached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.155757"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed a channel ATTACH request when connection CLOSING fails the deferrable (#RTL4b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.310013"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed an :attached channel transitions state to :detached (#RTL3b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.560938"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :closed a :failed channel remains in the :failed state and retains the error_reason (#RTL3b)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.393312"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed an :attaching channel transitions state to :failed (#RTL3a)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.311308"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed a :detached channel remains in the :detached state (#RTL3a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.379784"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed an :attached channel transitions state to :failed (#RTL3a)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.328412"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed an :attached channel updates the channel error_reason (#RTL3a)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.373993"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed a channel ATTACH request fails the deferrable (#RTL4b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.325103"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :failed a :failed channel remains in the :failed state and ignores the failure error (#RTL3a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.513822"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended a channel ATTACH request when connection SUSPENDED (#RTL4b) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.292036"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended a :detached channel remains in the :detached state (#RTL3c)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.616039"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended an :attached channel transitions state to :suspended (#RTL3c)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.512173"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended an :attached channel reattaching (#RTN15c3) sends ATTACH_RESUME flag when reattaching (RTL4j)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.494693"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended an :attached channel reattaching (#RTN15c3) transitions state automatically to :attaching once the connection is re-established " file="./spec/acceptance/realtime/channel_spec.rb" time="0.515054"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended a :failed channel remains in the :failed state and retains the error_reason (#RTL3c)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.382434"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :suspended an :attaching channel transitions state to :suspended (#RTL3c)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.157538"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :connected a :suspended channel is automatically reattached (#RTL3d)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.678800"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when connection state changes to :connected a :suspended channel when re-attach attempt fails returns to a suspended state (#RTL3d)" file="./spec/acceptance/realtime/channel_spec.rb" time="2.700408"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/channel_spec.rb" time="0.157103"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach calls the SafeDeferrable callback on success (#RTL4d)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.519486"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized sets attach_serial property after the attachment (#RTL15a)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.343420"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized emits attaching then attached events" file="./spec/acceptance/realtime/channel_spec.rb" time="0.367860"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized sends an ATTACH and waits for an ATTACHED (#RTL4c)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.342501"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized ignores subsequent #attach calls but calls the success callback if provided" file="./spec/acceptance/realtime/channel_spec.rb" time="0.359050"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized attaches to a channel and calls the provided block (#RTL4d)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.353258"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized implicitly attaches the channel (#RTL7c)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.347529"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized attaches to a channel" file="./spec/acceptance/realtime/channel_spec.rb" time="0.350922"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized when received attached decodes flags and sets it as modes on channel options (#RTL4m)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.157544"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized when received attached set params as channel options params (#RTL4k1)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.157367"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized context when channel options contain params sends an ATTACH with params (#RTL4k)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.321816"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized when the implicit channel attach fails registers the listener anyway (#RTL7c)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.572762"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized context when channel options contain modes sends an ATTACH with options as flags (#RTL4l)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.302869"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when initialized context when channel options contain modes when channel is reattaching sends ATTACH_RESUME flag along with other modes (RTL4j)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.491845"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when state is :attached does nothing (#RTL4a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.863308"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when state is :detaching does the attach operation after the completion of the pending request (#RTL4h)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.597941"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach with many connections and many channels on each simultaneously attaches all channels" file="./spec/acceptance/realtime/channel_spec.rb" time="5.751437"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when an ATTACHED acknowledge is not received on the current connection sends another ATTACH each time the connection becomes connected" file="./spec/acceptance/realtime/channel_spec.rb" time="1.639373"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach when state is :failed reattaches and sets the errorReason to nil (#RTL4g)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.406771"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach clean attach (RTL4j) when channel was explicitly detached doesn&apos;t send ATTACH_RESUME" file="./spec/acceptance/realtime/channel_spec.rb" time="0.423277"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach clean attach (RTL4j) when channel wasn&apos;t previously attached doesn&apos;t send ATTACH_RESUME" file="./spec/acceptance/realtime/channel_spec.rb" time="0.155480"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach failure as a result of insufficient key permissions calls the errback of the returned Deferrable (#RTL4d)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.466083"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach failure as a result of insufficient key permissions updates the error_reason" file="./spec/acceptance/realtime/channel_spec.rb" time="0.388438"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach failure as a result of insufficient key permissions emits failed event (#RTL4e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.443875"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach failure as a result of insufficient key permissions and subsequent authorisation with suitable permissions attaches to the channel successfully and resets the channel error_reason" file="./spec/acceptance/realtime/channel_spec.rb" time="0.690572"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach with connection state is connecting (#RTL4i)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.358043"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach with connection state is initialized (#RTL4i)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.373660"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #attach with connection state is disconnected (#RTL4i)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.537184"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached emits :detaching then :detached events" file="./spec/acceptance/realtime/channel_spec.rb" time="0.388487"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached it detaches from a channel (#RTL5d)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.390590"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached calls the Deferrable callback on success" file="./spec/acceptance/realtime/channel_spec.rb" time="0.382826"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached detaches from a channel and calls the provided block (#RTL5d, #RTL5e)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.575269"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/channel_spec.rb" time="0.349740"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attached and DETACHED message is not received within realtime request timeout fails the deferrable and returns to the previous state (#RTL5f, #RTL5e)" file="./spec/acceptance/realtime/channel_spec.rb" time="2.349072"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :attaching waits for the attach to complete and then moves to detached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.400119"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :detaching ignores subsequent #detach calls but calls the callback if provided (#RTL5i)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.364657"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :detached does nothing as the channel is detached (#RTL5a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.391591"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :initialized returns a valid deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.154675"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :initialized does nothing as there is no channel to detach (#RTL5a)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.155163"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is connecting does the detach operation once the connection state is connected (#RTL5h)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.394675"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is failed and channel is detached fails the deferrable (#RTL5b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.549979"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is closing fails the deferrable (#RTL5b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.339651"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is disconnected does the detach operation once the connection state is connected (#RTL5h)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.560155"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is initialized does the detach operation once the connection state is connected (#RTL5h)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.412981"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when connection state is failed and channel is failed fails the deferrable (#RTL5b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.364652"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :failed fails the deferrable (#RTL5b)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.348368"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #detach when state is :suspended moves the channel state immediately to DETACHED state (#RTL5j)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.416405"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #subscribe with an event argument subscribes for a single event" file="./spec/acceptance/realtime/channel_spec.rb" time="0.366870"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #subscribe before attach receives messages as soon as attached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.537755"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #subscribe with no event argument subscribes for all events" file="./spec/acceptance/realtime/channel_spec.rb" time="0.347161"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #subscribe many times with different event names filters events accordingly to each callback" file="./spec/acceptance/realtime/channel_spec.rb" time="2.884119"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #subscribe with a callback that raises an exception logs the error and continues" file="./spec/acceptance/realtime/channel_spec.rb" time="1.328191"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol initialization with :auto_connect option set to false on connection remains initialized when accessing a channel" file="./spec/acceptance/realtime/channel_spec.rb" time="2.155513"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol initialization with :auto_connect option set to false on connection opens a connection implicitly on #attach" file="./spec/acceptance/realtime/channel_spec.rb" time="0.357074"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish when channel is Detached (#RTL6c1) publishes messages immediately (#RTL6c1)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.811570"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish #(RTL17) when channel is detached stops sending message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.390381"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish #(RTL17) when channel is failed errors when trying to send a message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.343865"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish #(RTL17) when channel is initialized sends messages only on attach" file="./spec/acceptance/realtime/channel_spec.rb" time="0.349753"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish #(RTL17) when channel is attaching sends messages only on attach" file="./spec/acceptance/realtime/channel_spec.rb" time="0.344416"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish #(RTL17) when channel is detaching stops sending message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.372550"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects publishes an array of messages in one ProtocolMessage" file="./spec/acceptance/realtime/channel_spec.rb" time="0.484413"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects with two invalid message out of 12 when client_id is known (validated) raises an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.161076"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects with two invalid message out of 12 before client_id is known (validated) calls the errback once" file="./spec/acceptance/realtime/channel_spec.rb" time="0.489322"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects nil attributes with neither name or data attributes publishes the message without any attributes in the payload" file="./spec/acceptance/realtime/channel_spec.rb" time="0.421167"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects nil attributes when data is nil publishes the message without a data attribute in the payload" file="./spec/acceptance/realtime/channel_spec.rb" time="0.965634"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects nil attributes when name is nil publishes the message without a name attribute in the payload" file="./spec/acceptance/realtime/channel_spec.rb" time="1.105864"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects only invalid messages before client_id is known (validated) calls the errback once" file="./spec/acceptance/realtime/channel_spec.rb" time="0.477577"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Message objects only invalid messages when client_id is known (validated) raises an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.157072"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish when channel is Attaching (#RTL6c1) publishes messages immediately (#RTL6c1)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.693645"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish when channel is not attached in state Initializing (#RTL6c1) publishes messages immediately and does not implicitly attach (#RTL6c1)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.690150"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with more than allowed messages in a single publish rejects the publish" file="./spec/acceptance/realtime/channel_spec.rb" time="0.159783"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with many many messages and many connections simultaneously publishes all messages, all success callbacks are called, and a history request confirms all messages were published" file="./spec/acceptance/realtime/channel_spec.rb" time="2.581169"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when anonymous and no client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/realtime/channel_spec.rb" time="0.912549"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.200719"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.262278"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id after the client is CONNECTED and the client&apos;s identity is known with a valid client_id in the message succeeds" file="./spec/acceptance/realtime/channel_spec.rb" time="1.002286"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id after the client is CONNECTED and the client&apos;s identity is known with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/realtime/channel_spec.rb" time="25.181894"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id after the client is CONNECTED and the client&apos;s identity is known with an invalid client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.364789"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id before the client is CONNECTED and the client&apos;s identity has been obtained with a valid client_id in the message succeeds" file="./spec/acceptance/realtime/channel_spec.rb" time="0.933198"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id before the client is CONNECTED and the client&apos;s identity has been obtained with an invalid client_id in the message succeeds in the client library but then fails when delivered to Ably" file="./spec/acceptance/realtime/channel_spec.rb" time="0.706658"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id before the client is CONNECTED and the client&apos;s identity has been obtained with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/realtime/channel_spec.rb" time="0.963379"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a valid client_id in the message succeeds" file="./spec/acceptance/realtime/channel_spec.rb" time="0.893777"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with an empty client_id in the message succeeds and publishes without a client_id" file="./spec/acceptance/realtime/channel_spec.rb" time="1.034032"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a non-String client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.197053"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.200029"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a valid client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/realtime/channel_spec.rb" time="1.046246"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a valid client_id with a valid client_id succeeds" file="./spec/acceptance/realtime/channel_spec.rb" time="0.917268"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a valid client_id with an invalid client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.266937"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish identified clients when authenticated with a valid client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.204377"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state initialized (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.154871"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state connected (#RTL6c4) publishes the message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.306737"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state closing (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.350566"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state disconnected (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.294284"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state closed (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.380174"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and the channel state is failed (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.357232"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state connecting (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.160064"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with :queue_messages client option set to false (#RTL6c4) and connection state suspended (#RTL6c4) fails the deferrable" file="./spec/acceptance/realtime/channel_spec.rb" time="0.314890"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish when channel is attached (#RTL6c1) publishes messages" file="./spec/acceptance/realtime/channel_spec.rb" time="0.442165"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with an array of Hash objects with :name and :data attributes publishes an array of messages in one ProtocolMessage" file="./spec/acceptance/realtime/channel_spec.rb" time="0.456594"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish message size exceeded (#TO3l8) and max_message_size is nil and the message size is 65537 bytes should not allow to send a message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.316233"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish message size exceeded (#TO3l8) and max_message_size is nil and the message size is 30 bytes should allow to send a message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.375973"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish message size exceeded (#TO3l8) and max_message_size is default (65536 bytes) should not allow to send a message (700000 bytes)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.322066"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish message size exceeded (#TO3l8) and max_message_size is default (65536 bytes) should allow to send a message (32 bytes)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.445770"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish message size exceeded (#TO3l8) and max_message_size is customized (11 bytes) and the message size is 30 bytes should not allow to send a message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.303073"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish when channel is Detaching (#RTL6c1) publishes messages immediately (#RTL6c1)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.784643"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with name and data arguments publishes the message and return true indicating success" file="./spec/acceptance/realtime/channel_spec.rb" time="0.432775"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with name and data arguments and additional invalid attributes throws an exception" file="./spec/acceptance/realtime/channel_spec.rb" time="0.155730"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #publish with name and data arguments and additional attributes publishes the message with the attributes and return true indicating success" file="./spec/acceptance/realtime/channel_spec.rb" time="0.473754"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #set_options (#RTL16a) when channel is attaching behaves like an update that sends ATTACH message sends an ATTACH message on options change" file="./spec/acceptance/realtime/channel_spec.rb" time="0.370843"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #set_options (#RTL16a) when channel is initialized doesn&apos;t send ATTACH message" file="./spec/acceptance/realtime/channel_spec.rb" time="0.155213"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #set_options (#RTL16a) when channel is attaching behaves like an update that sends ATTACH message sends an ATTACH message on options change" file="./spec/acceptance/realtime/channel_spec.rb" time="0.242795"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives an ERROR ProtocolMessage should transition to the failed state and the error_reason should be set (#RTL14)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.344380"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol automatic channel recovery if a subsequent ATTACHED is received on an ATTACHED channel ignores the additional ATTACHED if resumed is true (#RTL12)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.369809"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol automatic channel recovery if a subsequent ATTACHED is received on an ATTACHED channel emits an UPDATE only when resumed is true (#RTL12)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.354012"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol automatic channel recovery if a subsequent ATTACHED is received on an ATTACHED channel emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.399156"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol automatic channel recovery when an ATTACH request times out moves to the SUSPENDED state (#RTL4f)" file="./spec/acceptance/realtime/channel_spec.rb" time="2.319815"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change emits a ChannelStateChange object" file="./spec/acceptance/realtime/channel_spec.rb" time="0.342606"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change moves to failed all published messages awaiting an ACK do nothing (#RTL11a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.059889"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change moves to failed all queued messages fail with NACK (#RTL11)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.352895"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change moves to suspended all published messages awaiting an ACK do nothing (#RTL11a)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.028252"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change moves to suspended all queued messages fail with NACK (#RTL11)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.357841"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object has a previous state" file="./spec/acceptance/realtime/channel_spec.rb" time="0.622350"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object has current state" file="./spec/acceptance/realtime/channel_spec.rb" time="0.351568"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object has the event that generated the state change (#TA5)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.360002"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object contains a private API protocol_message attribute that is used for special state change events" file="./spec/acceptance/realtime/channel_spec.rb" time="0.349568"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object has an empty reason when there is no error" file="./spec/acceptance/realtime/channel_spec.rb" time="0.470905"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object on failure has a reason Error object when there is an error on the channel" file="./spec/acceptance/realtime/channel_spec.rb" time="0.378915"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object #resume (#RTL2f) is false when a channel first attaches" file="./spec/acceptance/realtime/channel_spec.rb" time="0.345842"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object #resume (#RTL2f) is true when a connection is recovered and the channel is attached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.752646"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object #resume (#RTL2f) is false when a connection fails to recover and the channel is attached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.706522"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol channel state change ChannelStateChange object #resume (#RTL2f) when a resume fails is false when a resume fails to recover and the channel is automatically re-attached" file="./spec/acceptance/realtime/channel_spec.rb" time="0.547606"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol #presence returns a Ably::Realtime::Presence object" file="./spec/acceptance/realtime/channel_spec.rb" time="0.154806"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is attached reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.376544"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is attaching will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)" file="./spec/acceptance/realtime/channel_spec.rb" time="6.168452"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is failed does nothing (#RTL13)" file="./spec/acceptance/realtime/channel_spec.rb" time="1.430867"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is suspended reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.392963"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is suspended when connection is no longer connected will not attempt to reattach (#RTL13c)" file="./spec/acceptance/realtime/channel_spec.rb" time="0.407840"></testcase>
<testcase classname="spec.acceptance.realtime.channel_spec" name="Ably::Realtime::Channel using JSON protocol when it receives a server-initiated DETACHED (#RTL13) and channel is initialized (#RTL13) does nothing" file="./spec/acceptance/realtime/channel_spec.rb" time="1.307992"></testcase>
<testcase classname="spec.acceptance.rest.time_spec" name="Ably::Rest::Client#time using JSON protocol fetching the service time should return the service time as a Time object" file="./spec/acceptance/rest/time_spec.rb" time="0.037678"></testcase>
<testcase classname="spec.acceptance.rest.time_spec" name="Ably::Rest::Client#time using JSON protocol fetching the service time with reconfigured HTTP timeout should raise a timeout exception" file="./spec/acceptance/rest/time_spec.rb" time="0.153945"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter data attribute when provided as argument option to #enter changes to value provided in #leave" file="./spec/acceptance/realtime/presence_spec.rb" time="0.904414"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter message #connection_id matches the current client connection_id" file="./spec/acceptance/realtime/presence_spec.rb" time="0.730080"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter without necessary capabilities to join presence calls the Deferrable errback on capabilities failure" file="./spec/acceptance/realtime/presence_spec.rb" time="0.425751"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.364043"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.407116"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.372425"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.430798"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.408649"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.433687"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="0.452998"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="0.424406"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.156302"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154922"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155112"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154757"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154962"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.161836"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.287540"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="0.390572"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154802"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.394057"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.388730"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.422962"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.405368"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.374871"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #unsubscribe with event name removes the callback for specified presence event" file="./spec/acceptance/realtime/presence_spec.rb" time="2.054810"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #unsubscribe with no arguments removes the callback for all presence events" file="./spec/acceptance/realtime/presence_spec.rb" time="2.091883"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel emits :present for each member" file="./spec/acceptance/realtime/presence_spec.rb" time="11.644031"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete ignores presence events with timestamps / identifiers prior to the current :present event in the MembersMap (#RTP2c)" file="./spec/acceptance/realtime/presence_spec.rb" time="12.726411"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get (#RTP2f)" file="./spec/acceptance/realtime/presence_spec.rb" time="12.720976"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete emits :leave immediately as the member leaves and cleans up the ABSENT member after (#RTP2f, #RTP2g)" file="./spec/acceptance/realtime/presence_spec.rb" time="11.521264"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member enters before the SYNC operation is complete emits a :enter immediately and the member is :present once the sync is complete (#RTP2g)" file="./spec/acceptance/realtime/presence_spec.rb" time="11.552151"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel #get with :wait_for_sync option set to false (#RTP11c1) it does not wait for sync" file="./spec/acceptance/realtime/presence_spec.rb" time="1.814527"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel #get by default waits until sync is complete (#RTP11c1)" file="./spec/acceptance/realtime/presence_spec.rb" time="11.469347"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe implicitly attaches" file="./spec/acceptance/realtime/presence_spec.rb" time="0.366451"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with event name calls the callback for specified presence event" file="./spec/acceptance/realtime/presence_spec.rb" time="1.136089"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with a callback that raises an exception logs the error and continues" file="./spec/acceptance/realtime/presence_spec.rb" time="1.409516"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with no arguments calls the callback for all presence events" file="./spec/acceptance/realtime/presence_spec.rb" time="1.216470"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.203878"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.393129"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.469972"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.274190"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.267554"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="1.018442"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.201176"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.202794"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.363674"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.478760"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.405344"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.203942"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client multiple times on the same channel with different client_ids has no affect on the client&apos;s presence state and only enters on behalf of the provided client_id" file="./spec/acceptance/realtime/presence_spec.rb" time="2.096324"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client multiple times on the same channel with different client_ids enters a channel and sets the data based on the provided :data option" file="./spec/acceptance/realtime/presence_spec.rb" time="0.817361"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.562898"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.157106"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.457853"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.420588"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="0.458975"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.475842"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.394389"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.513642"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="0.447706"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.173694"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="0.310431"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.304015"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155058"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154589"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154750"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154899"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155251"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.411173"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.459445"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.420080"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.444429"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.458443"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client message #connection_id matches the current client connection_id" file="./spec/acceptance/realtime/presence_spec.rb" time="0.849566"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client without necessary capabilities to enter on behalf of another client calls the Deferrable errback on capabilities failure" file="./spec/acceptance/realtime/presence_spec.rb" time="0.375629"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.455979"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.408195"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.394631"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="0.441959"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.431631"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="0.445883"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.435617"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.443752"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.170974"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.296830"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="0.298018"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.160838"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154673"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.162590"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.171180"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.156168"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154847"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.380645"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.366050"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.345153"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.371276"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.441413"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with a nil value in :data option emits the leave event with the previous value as a convenience" file="./spec/acceptance/realtime/presence_spec.rb" time="0.493318"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with a new value in :data option emits the leave event with the new data value" file="./spec/acceptance/realtime/presence_spec.rb" time="0.483436"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with no :data option emits the leave event with the previous value as a convenience" file="./spec/acceptance/realtime/presence_spec.rb" time="0.471106"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel multiple times on the same channel with different client_ids succeeds if that client_id has not previously entered the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="1.336650"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel multiple times on the same channel with different client_ids emits the :leave event for each client_id" file="./spec/acceptance/realtime/presence_spec.rb" time="1.858635"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.197771"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.203514"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.407963"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.405863"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.431103"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.397244"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.197133"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.198499"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="0.948535"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.197476"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.199014"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.211291"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.202331"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.378321"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.454299"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.202942"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.203042"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="0.438207"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.402335"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.197560"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="0.904478"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.198587"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.202886"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.197824"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids updates the data attribute to null for the member when :data option is not provided (assumed null)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.795353"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids enters if not already entered" file="./spec/acceptance/realtime/presence_spec.rb" time="1.324092"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids updates the data attribute for the member when :data option provided" file="./spec/acceptance/realtime/presence_spec.rb" time="1.838940"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="0.416427"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.157242"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="0.438464"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.407934"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.414217"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.431707"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.401363"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.469055"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.410383"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="0.296107"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154976"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.321051"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.159756"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155177"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155413"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.156572"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155047"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.396672"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.432386"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.432637"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.464194"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.453054"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol when the client does not have presence subscribe privileges but is present on the channel receives presence updates for all presence events generated by the current connection and the presence map is kept up to date (#RTP17a)" file="./spec/acceptance/realtime/presence_spec.rb" time="1.547028"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol leaving expect :left event once underlying connection is closed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.404666"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol leaving expect :left event with client data from enter event" file="./spec/acceptance/realtime/presence_spec.rb" time="0.495812"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the FAILED state clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.762327"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the ATTACHED state (RTP5b) all queued presence messages are sent" file="./spec/acceptance/realtime/presence_spec.rb" time="0.367071"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the SUSPENDED state maintains the PresenceMap and only publishes presence event changes since the last attached state (#RTP5f)" file="./spec/acceptance/realtime/presence_spec.rb" time="2.901186"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the DETACHED state clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.825057"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client maintains a copy of the member map for any member that shares this connection&apos;s connection ID (#RTP17)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.975536"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client #RTP17b updates presence members on leave" file="./spec/acceptance/realtime/presence_spec.rb" time="0.830473"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client #RTP17b does no update presence members on fabricated leave" file="./spec/acceptance/realtime/presence_spec.rb" time="0.753573"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client when a channel becomes attached again when re-entering a client automatically, if the re-enter fails for any reason should emit an ErrorInfo with error code 91004 (#RTP5c3)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.532296"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client when a channel becomes attached again and the resume flag is false and the presence flag is false immediately resends all local presence members (#RTP5c2, #RTP19a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.458087"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) will emit an :in_sync event when synchronisation is complete" file="./spec/acceptance/realtime/presence_spec.rb" time="0.718255"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) is not synchronised when initially created" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154970"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) is available once the channel is created" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155687"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) the map is based on the member_key (connection_id &amp; client_id) ensures uniqueness from this member_key (#RTP2a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.956874"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) once server sync is complete behaves like an Enumerable allowing direct access to current members" file="./spec/acceptance/realtime/presence_spec.rb" time="0.898615"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) newness is compared based on PresenceMessage#id unless synthesized when presence messages are not synthesized (events sent from clients) compares based on timestamp if either has a connectionId not part of the presence message id (#RTP2b2)" file="./spec/acceptance/realtime/presence_spec.rb" time="11.112279"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) newness is compared based on PresenceMessage#id unless synthesized when presence messages are synthesized compares based on timestamp if either has a connectionId not part of the presence message id (#RTP2b1)" file="./spec/acceptance/realtime/presence_spec.rb" time="10.898319"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) before server sync complete behaves like an Enumerable allowing direct access to current members" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154799"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol REST #get returns current members" file="./spec/acceptance/realtime/presence_spec.rb" time="0.498364"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol REST #get returns no members once left" file="./spec/acceptance/realtime/presence_spec.rb" time="0.555336"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol :left event emits the data defined in update" file="./spec/acceptance/realtime/presence_spec.rb" time="1.289862"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol :left event emits the data defined in enter" file="./spec/acceptance/realtime/presence_spec.rb" time="0.790408"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update updates the data to nil if :data argument is not provided (assumes nil value)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.470962"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update without previous #enter automatically enters" file="./spec/acceptance/realtime/presence_spec.rb" time="1.407078"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update updates the data if :data argument provided" file="./spec/acceptance/realtime/presence_spec.rb" time="0.456274"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.398996"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.473157"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.461405"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.909265"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="0.547877"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.400230"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="0.400889"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.988602"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="1.122038"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155375"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154697"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155252"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155049"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.436160"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.321851"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155601"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="0.314977"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="0.159022"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.645632"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.450820"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.454020"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.444775"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update when ENTERED has no effect on the state" file="./spec/acceptance/realtime/presence_spec.rb" time="2.032392"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol when attached (but not present) on a presence channel with an anonymous client (no client ID) maintains state as other clients enter and leave the channel (#RTP2e)" file="./spec/acceptance/realtime/presence_spec.rb" time="1.159299"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol client_id with ASCII_8BIT in channel options is converted into UTF_8" file="./spec/acceptance/realtime/presence_spec.rb" time="0.805258"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol client_id with ASCII_8BIT in connection set up is converted into UTF_8" file="./spec/acceptance/realtime/presence_spec.rb" time="0.398464"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #sync_complete? and SYNC flags (#RTP1) when attaching to a channel with members present sync_complete? is false, there is a presence flag, and the presence channel is subsequently synced (#RTP1)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.595475"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #sync_complete? and SYNC flags (#RTP1) when attaching to a channel without any members present sync_complete? is true, there is no presence flag, and the presence channel is considered synced immediately (#RTP1)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.000012"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data encrypts presence message data" file="./spec/acceptance/realtime/presence_spec.rb" time="0.440468"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #get returns a list of members with decrypted data" file="./spec/acceptance/realtime/presence_spec.rb" time="0.461649"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data when cipher settings do not match publisher delivers an unencoded presence message left with encoding value" file="./spec/acceptance/realtime/presence_spec.rb" time="0.634973"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data when cipher settings do not match publisher emits an error when cipher does not match and presence data cannot be decoded" file="./spec/acceptance/realtime/presence_spec.rb" time="0.749234"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data REST #get returns a list of members with decrypted data" file="./spec/acceptance/realtime/presence_spec.rb" time="0.505025"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits decrypted update events" file="./spec/acceptance/realtime/presence_spec.rb" time="0.487016"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits previously set data for leave events" file="./spec/acceptance/realtime/presence_spec.rb" time="0.489464"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits decrypted enter events" file="./spec/acceptance/realtime/presence_spec.rb" time="0.443983"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get implicitly attaches the channel (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.445508"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get filters by connection_id option if provided (#RTP11c3)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.887548"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.157365"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="0.461384"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get catches exceptions in the provided method block" file="./spec/acceptance/realtime/presence_spec.rb" time="0.466789"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get does not wait for SYNC to complete if :wait_for_sync option is false (#RTP11c1)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.747523"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns the current members on the channel (#RTP11a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.426542"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get filters by client_id option if provided (#RTP11c2)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.791304"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns the list of members and waits for SYNC to complete by default (#RTP11a)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.886111"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get fails if the connection is DETACHED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.389158"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get fails if the connection is FAILED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.379393"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when the channel is SUSPENDED with wait_for_sync: true results in an error with @code@ @91005@ and a @message@ stating that the presence state is out of sync (#RTP11d)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.446405"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when the channel is SUSPENDED with wait_for_sync: false returns the current PresenceMap and does not wait for the channel to change to the ATTACHED state (#RTP11d)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.499038"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when a member enters and then leaves has no members" file="./spec/acceptance/realtime/presence_spec.rb" time="0.544513"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when a member enters and the presence map is updated adds the member as being :present (#RTP2d)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.446186"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get with lots of members on different clients returns a complete list of members on all clients" file="./spec/acceptance/realtime/presence_spec.rb" time="25.966814"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get during a sync when :wait_for_sync is true fails if the connection becomes FAILED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="20.776214"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get during a sync when :wait_for_sync is true fails if the channel becomes detached (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="20.704870"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol connection failure mid-way through a large member sync resumes the SYNC operation (#RTP3)" file="./spec/acceptance/realtime/presence_spec.rb" time="4.936757"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave succeeds and does not emit an event (#RTP10d)" file="./spec/acceptance/realtime/presence_spec.rb" time="2.581956"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="1.059399"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="1.079879"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="0.611873"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="0.898709"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.452245"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="0.452363"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.451458"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="0.622870"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="0.584830"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.155092"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154852"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154832"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="0.154522"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when set to nil emits the last value for the data attribute when leaving" file="./spec/acceptance/realtime/presence_spec.rb" time="0.459542"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option and sync is complete does not cache members that have left" file="./spec/acceptance/realtime/presence_spec.rb" time="0.933277"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when not passed as an argument (i.e. nil) emits the previous value for the data attribute when leaving" file="./spec/acceptance/realtime/presence_spec.rb" time="0.622848"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when set to a string emits the new data for the leave event" file="./spec/acceptance/realtime/presence_spec.rb" time="0.567334"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol state once opened once opened, enters the :left state if the channel detaches" file="./spec/acceptance/realtime/presence_spec.rb" time="0.614729"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync when members exist in the PresenceMap before a SYNC completes removes the members that are no longer present (#RTP19)" file="./spec/acceptance/realtime/presence_spec.rb" time="0.621074"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync with a single SYNC page is initiated and completed with a single SYNC message (and no channelSerial) (#RTP18a, #RTP18c) " file="./spec/acceptance/realtime/presence_spec.rb" time="0.467337"></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync with multiple SYNC pages is initiated with a SYNC message and completed with a later SYNC message with no cursor value part of the channelSerial (#RTP18a, #RTP18b) " file="./spec/acceptance/realtime/presence_spec.rb" time="0.425214"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with UTF-8 data applies utf-8, cipher and base64 encodings and sets the encoding attribute to &quot;utf-8/cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.003311"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with binary data applies cipher and base64 encoding and sets the encoding attribute to &quot;cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002775"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with JSON data applies json, utf-8, cipher and base64 encoding and sets the encoding attribute to &quot;json/utf-8/cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.003048"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with UTF-8 data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001768"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with binary data applies a base64 encoding and sets the encoding attribute to &quot;base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001860"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with JSON data stringifies the JSON and sets the encoding attribute to &quot;json&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002009"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with UTF-8 data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001749"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with binary data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001830"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with JSON data stringifies the JSON and sets the encoding attribute to &quot;json&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002030"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with JSON data applies json, utf-8 and cipher encoding and sets the encoding attribute to &quot;json/utf-8/cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002725"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with binary data applies cipher encoding and sets the encoding attribute to &quot;cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002627"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with UTF-8 data applies utf-8 and cipher encoding and sets the encoding attribute to &quot;utf-8/cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002816"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol has immutable options" file="./spec/acceptance/rest/auth_spec.rb" time="0.000895"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #key attribute contains the key string" file="./spec/acceptance/rest/auth_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #using_token_auth? is false" file="./spec/acceptance/rest/auth_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #using_basic_auth? is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token creates a TokenRequest automatically and sends it to Ably to obtain a token" file="./spec/acceptance/rest/auth_spec.rb" time="0.006154"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token returns a valid TokenDetails object in the expected format with valid issued and expires attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.057838"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :query_time option queries the server for the time (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.219841"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is text/plain content type and a token string returns TokenDetails created from the token JSON" file="./spec/acceptance/rest/auth_spec.rb" time="0.005856"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a token details object returns TokenDetails created from the token JSON" file="./spec/acceptance/rest/auth_spec.rb" time="0.004252"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request requests a token from :auth_url using an HTTP GET request" file="./spec/acceptance/rest/auth_spec.rb" time="0.012807"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request returns a valid token generated from the token request" file="./spec/acceptance/rest/auth_spec.rb" time="0.007164"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with :query_params requests a token from :auth_url with the :query_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.008157"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with POST requests a token from :auth_url using an HTTP POST instead of the default GET" file="./spec/acceptance/rest/auth_spec.rb" time="0.007041"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with :headers requests a token from :auth_url with the HTTP headers set" file="./spec/acceptance/rest/auth_spec.rb" time="0.007408"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response is invalid 500 raises ServerError" file="./spec/acceptance/rest/auth_spec.rb" time="0.003880"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response is invalid XML raises InvalidResponseBody" file="./spec/acceptance/rest/auth_spec.rb" time="0.003815"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :client_id overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004845"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method requests a token using a GET request with provided headers, and merges client_id into auth_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.005930"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method with provided auth option auth_params and auth_headers replaces any preconfigured auth_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.005479"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method with provided token_params merges provided token_params with existing auth_params and client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.005995"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using :get :auth_method and query params in the URL requests a token using a GET request with provided headers, and merges client_id into auth_params and existing URL querystring into new URL querystring" file="./spec/acceptance/rest/auth_spec.rb" time="0.006079"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using :post :auth_method requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data" file="./spec/acceptance/rest/auth_spec.rb" time="0.006391"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :timestamp overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.005052"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :client_id returns a token with the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.109277"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :key option key_name is used in request and signing uses key_secret" file="./spec/acceptance/rest/auth_spec.rb" time="0.006022"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :ttl overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004914"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :capability overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004880"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with auth_option :client_id returns a token with the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.109056"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token persisted option of token params when set to true returns a token with a short token ID that is used to look up the token details" file="./spec/acceptance/rest/auth_spec.rb" time="0.301333"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token persisted option of token params when omitted returns a literal token" file="./spec/acceptance/rest/auth_spec.rb" time="0.046102"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token without :query_time option does not query the server for the time" file="./spec/acceptance/rest/auth_spec.rb" time="0.120874"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest calls the Proc with token_params when authenticating to obtain the request token" file="./spec/acceptance/rest/auth_spec.rb" time="0.047730"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.045192"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest when authorized sets Auth#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.089770"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest when authorized sets Client#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.092575"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object calls the lambda when authenticating to obtain the request token" file="./spec/acceptance/rest/auth_spec.rb" time="0.001369"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.001308"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object when authorized sets Auth#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.001711"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object when authorized sets Client#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.001765"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails object uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.065049"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a Token string uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.064896"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :key_name &amp; :key_secret options key_name is used in request and signing uses key_secret" file="./spec/acceptance/rest/auth_spec.rb" time="0.006881"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :nonce overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004952"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT authenticates correctly using the JWT token generated by the echo server" file="./spec/acceptance/rest/auth_spec.rb" time="0.433204"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the JWT embeds an Ably token authenticates correctly using the embedded token" file="./spec/acceptance/rest/auth_spec.rb" time="0.485873"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the JWT embeds an Ably token and the requested token is encrypted authenticates correctly using the embedded token" file="./spec/acceptance/rest/auth_spec.rb" time="0.493446"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the token requested is returned with application/jwt content type authenticates correctly and pulls stats" file="./spec/acceptance/rest/auth_spec.rb" time="0.393007"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol before #authorize has been called has no current_token_details" file="./spec/acceptance/rest/auth_spec.rb" time="0.001003"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token does not expire for the next 2 hours should not request for the new token (#RSA4b1)" file="./spec/acceptance/rest/auth_spec.rb" time="0.222842"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token expires fails if the token renewal fails (#RSA4b)" file="./spec/acceptance/rest/auth_spec.rb" time="2.650157"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token expires automatically renews the token (#RSA4b)" file="./spec/acceptance/rest/auth_spec.rb" time="2.745736"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when :client_id is provided in a token #client_id contains the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.045773"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option authenticates successfully using the provided :token" file="./spec/acceptance/rest/auth_spec.rb" time="0.106168"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option fails if timestamp is invalid" file="./spec/acceptance/rest/auth_spec.rb" time="0.045256"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option disallows publishing on unspecified capability channels" file="./spec/acceptance/rest/auth_spec.rb" time="0.094236"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option cannot be renewed automatically" file="./spec/acceptance/rest/auth_spec.rb" time="0.046383"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option and the token expires should indicate an error and not retry the request (#RSA4a)" file="./spec/acceptance/rest/auth_spec.rb" time="2.066656"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol deprecated #authorise returns a valid token (#RSA10l)" file="./spec/acceptance/rest/auth_spec.rb" time="0.053231"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol deprecated #authorise logs a deprecation warning (#RSA10l)" file="./spec/acceptance/rest/auth_spec.rb" time="0.051639"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) updates the persisted auth options that are then used for subsequent authorize requests" file="./spec/acceptance/rest/auth_spec.rb" time="0.371586"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) updates the persisted token params that are then used for subsequent authorize requests" file="./spec/acceptance/rest/auth_spec.rb" time="0.046036"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated issues a new token every time (#RSA10a)" file="./spec/acceptance/rest/auth_spec.rb" time="0.048480"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated returns a valid token" file="./spec/acceptance/rest/auth_spec.rb" time="0.046026"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated passes all auth_options and token_params to #request_token" file="./spec/acceptance/rest/auth_spec.rb" time="0.001452"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) query_time: true ClientOption when instanced only queries the server time once and then works out the offset, query_time option is never persisted (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.173511"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument updates defaults when present and all previous configured TokenParams are discarded (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="0.096340"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument uses TokenParams#timestamp for this request but obtains a new timestamp for subsequence requests (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="0.149078"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument updates Auth#token_params attribute with an immutable hash" file="./spec/acceptance/rest/auth_spec.rb" time="0.090676"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument has no effect on the defaults when null and TokenParam defaults remain the same" file="./spec/acceptance/rest/auth_spec.rb" time="0.106713"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) query_time: true with authorize only queries the server time once and then works out the offset, query_time option is never persisted (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.091634"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.052472"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception rejects a TokenRequests object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.044622"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and a token string without any retrievable client_id rejects a TokenRequests object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.049196"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit token string that expires and a lambda for the :auth_callback option to provide a means to renew the token calls the lambda once the token has expired and the new token is used" file="./spec/acceptance/rest/auth_spec.rb" time="3.769440"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument updates defaults when present and all previous configured AuthOptions are discarded (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="2.600981"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument has no effect on the defaults when null and AuthOptions defaults remain the same" file="./spec/acceptance/rest/auth_spec.rb" time="2.594692"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument uses AuthOptions#query_time for this request and will not query_time for subsequent requests (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="2.693802"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument uses AuthOptions#query_time for this request and will query_time again if provided subsequently" file="./spec/acceptance/rest/auth_spec.rb" time="2.728062"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument updates Auth#options attribute with an immutable hash" file="./spec/acceptance/rest/auth_spec.rb" time="2.550544"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.044980"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option calls the lambda" file="./spec/acceptance/rest/auth_spec.rb" time="0.047113"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option for every subsequent #request_token with a provided block does not call the originally provided lambda and calls the new #request_token :auth_callback lambda" file="./spec/acceptance/rest/auth_spec.rb" time="0.090341"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option for every subsequent #request_token without a :auth_callback lambda calls the originally provided block" file="./spec/acceptance/rest/auth_spec.rb" time="0.089025"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with previous authorisation requests a new token if token is expired" file="./spec/acceptance/rest/auth_spec.rb" time="0.049919"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with previous authorisation issues a new token every time #authorize is called" file="./spec/acceptance/rest/auth_spec.rb" time="0.098089"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request specifies no capability (#RSA6)" file="./spec/acceptance/rest/auth_spec.rb" time="0.000938"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request uses the key name from the client" file="./spec/acceptance/rest/auth_spec.rb" time="0.000917"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request returns a TokenRequest that can be passed to a client that can use it for authentication without an API key" file="./spec/acceptance/rest/auth_spec.rb" time="0.046596"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request specifies no TTL (#RSA5)" file="./spec/acceptance/rest/auth_spec.rb" time="0.000907"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request returns a TokenRequest object" file="./spec/acceptance/rest/auth_spec.rb" time="0.000810"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when specifying capability overrides the default" file="./spec/acceptance/rest/auth_spec.rb" time="0.001027"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when specifying capability uses these capabilities when Ably issues an actual token" file="./spec/acceptance/rest/auth_spec.rb" time="0.046796"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when required fields are missing should raise an exception if key secret is missing" file="./spec/acceptance/rest/auth_spec.rb" time="0.000815"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when required fields are missing should raise an exception if key name is missing" file="./spec/acceptance/rest/auth_spec.rb" time="0.000737"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing generates a valid HMAC" file="./spec/acceptance/rest/auth_spec.rb" time="0.001081"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing lexicographic ordering of channels and operations is valid when used for authentication" file="./spec/acceptance/rest/auth_spec.rb" time="0.045228"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing lexicographic ordering of channels and operations HMAC is lexicographic ordered and thus the HMAC is identical" file="./spec/acceptance/rest/auth_spec.rb" time="0.001086"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute is a Time object in Ruby and is set to the local time" file="./spec/acceptance/rest/auth_spec.rb" time="0.000852"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute with :timestamp option uses the provided timestamp in the token request" file="./spec/acceptance/rest/auth_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute with :query_time auth_option queries the server for the timestamp" file="./spec/acceptance/rest/auth_spec.rb" time="0.001207"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired uses the Token expiry buffer default + 10s to allow for a token request in flight" file="./spec/acceptance/rest/auth_spec.rb" time="0.000975"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :ttl overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.000985"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request the nonce is at least 16 characters" file="./spec/acceptance/rest/auth_spec.rb" time="0.000917"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request the nonce is unique for every request" file="./spec/acceptance/rest/auth_spec.rb" time="0.005054"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :nonce overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.000829"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :client_id overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.000831"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with additional invalid attributes are ignored" file="./spec/acceptance/rest/auth_spec.rb" time="0.001297"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token auth string for a token with a client_id is false as identification is not possible from an opaque token string" file="./spec/acceptance/rest/auth_spec.rb" time="0.046759"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.045635"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with a client_id is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.047761"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) is false" file="./spec/acceptance/rest/auth_spec.rb" time="0.047849"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token request with a client_id is not true as identification is not confirmed until authenticated" file="./spec/acceptance/rest/auth_spec.rb" time="0.000978"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token request with a client_id after authentication is true as identification is completed during implicit authentication" file="./spec/acceptance/rest/auth_spec.rb" time="0.099813"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using basic auth is false as basic auth users do not have an identity" file="./spec/acceptance/rest/auth_spec.rb" time="0.000873"></testcase>
<testcase classname="spec.acceptance.realtime.push_spec" name="Ably::Realtime::Push using JSON protocol #activate raises an unsupported exception" file="./spec/acceptance/realtime/push_spec.rb" time="0.001602"></testcase>
<testcase classname="spec.acceptance.realtime.push_spec" name="Ably::Realtime::Push using JSON protocol #deactivate raises an unsupported exception" file="./spec/acceptance/realtime/push_spec.rb" time="0.001361"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.462014"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with lots of messages published with a single client and channel in multiple ProtocolMessages retrieves limited history backwards with pagination" file="./spec/acceptance/realtime/channel_history_spec.rb" time="3.900498"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with lots of messages published with a single client and channel in multiple ProtocolMessages retrieves limited history forwards with pagination" file="./spec/acceptance/realtime/channel_history_spec.rb" time="3.625630"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with lots of messages published with a single client and channel and REST history return the same results with unique matching message IDs" file="./spec/acceptance/realtime/channel_history_spec.rb" time="1.163300"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with lots of messages published with a single client and channel as one ProtocolMessage retrieves history backwards with pagination through :limit option" file="./spec/acceptance/realtime/channel_history_spec.rb" time="1.017775"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with lots of messages published with a single client and channel as one ProtocolMessage retrieves history forwards with pagination through :limit option" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.991507"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with option until_attach: true retrieves all messages before channel was attached" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.490695"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with option until_attach: true fails the deferrable unless the state is attached" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.155142"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with option until_attach: true and two pages of messages retrieves two pages of messages before channel was attached" file="./spec/acceptance/realtime/channel_history_spec.rb" time="2.139039"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with option until_attach: true when channel receives update event after an attachment updates attach_serial" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.600564"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with a single client publishing and receiving retrieves realtime history" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.620200"></testcase>
<testcase classname="spec.acceptance.realtime.channel_history_spec" name="Ably::Realtime::Channel#history using JSON protocol with two clients publishing messages on the same channel retrieves realtime history on both channels" file="./spec/acceptance/realtime/channel_history_spec.rb" time="0.830407"></testcase>
<testcase classname="spec.acceptance.realtime.presence_history_spec" name="Ably::Realtime::Presence history using JSON protocol ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime" file="./spec/acceptance/realtime/presence_history_spec.rb" time="0.440670"></testcase>
<testcase classname="spec.acceptance.realtime.presence_history_spec" name="Ably::Realtime::Presence history using JSON protocol provides up to the moment presence history" file="./spec/acceptance/realtime/presence_history_spec.rb" time="0.480428"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when retrieving a jsonObject using JSON protocol is compatible with a publishes using MsgPack" file="./spec/acceptance/realtime/message_spec.rb" time="0.130804"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when publishing a string using JSON protocol receives the message over MsgPack and the data matches" file="./spec/acceptance/realtime/message_spec.rb" time="0.253718"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when retrieving a string using JSON protocol is compatible with a publishes using MsgPack" file="./spec/acceptance/realtime/message_spec.rb" time="0.133850"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when publishing a jsonArray using JSON protocol receives the message over MsgPack and the data matches" file="./spec/acceptance/realtime/message_spec.rb" time="0.242599"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when publishing a jsonObject using JSON protocol receives the message over MsgPack and the data matches" file="./spec/acceptance/realtime/message_spec.rb" time="0.411477"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when retrieving a jsonArray using JSON protocol is compatible with a publishes using MsgPack" file="./spec/acceptance/realtime/message_spec.rb" time="0.128428"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when retrieving a binary using JSON protocol is compatible with a publishes using MsgPack" file="./spec/acceptance/realtime/message_spec.rb" time="0.405573"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when publishing a binary using JSON protocol receives the message over MsgPack and the data matches" file="./spec/acceptance/realtime/message_spec.rb" time="0.249063"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when retrieving a string using JSON protocol is compatible with a publishes using MsgPack" file="./spec/acceptance/realtime/message_spec.rb" time="0.131863"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a MsgPack transport when publishing a string using JSON protocol receives the message over MsgPack and the data matches" file="./spec/acceptance/realtime/message_spec.rb" time="0.265347"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when decoding string ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.427005"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when encoding string ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.432536"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when encoding string ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.420621"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when encoding jsonArray ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.446640"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when decoding string ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.409187"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when decoding binary ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.477754"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when encoding binary ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.436665"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when decoding jsonObject ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.412297"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when decoding jsonArray ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.404128"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message message encoding interoperability over a JSON transport when encoding jsonObject ensures that client libraries have compatible encoding and decoding using common fixtures" file="./spec/acceptance/realtime/message_spec.rb" time="0.446584"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol sends a String data payload" file="./spec/acceptance/realtime/message_spec.rb" time="0.382225"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol a name with data payload (#RSL1a, #RSL1b) publishes a message" file="./spec/acceptance/realtime/message_spec.rb" time="0.364715"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/message_spec.rb" time="0.382889"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/message_spec.rb" time="0.371371"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/message_spec.rb" time="0.365743"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/message_spec.rb" time="0.359326"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with unsupported data payload content type Float is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/message_spec.rb" time="0.155549"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with unsupported data payload content type Integer is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/message_spec.rb" time="0.154983"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with unsupported data payload content type False is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/message_spec.rb" time="0.155963"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with unsupported data payload content type Boolean is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/message_spec.rb" time="0.155710"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with ASCII_8BIT message name is converted into UTF_8" file="./spec/acceptance/realtime/message_spec.rb" time="0.425177"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol publishing lots of messages across two connections sends and receives the messages on both opened connections and calls the success callbacks for each message published" file="./spec/acceptance/realtime/message_spec.rb" time="1.337026"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol without suitable publishing permissions calls the error callback" file="./spec/acceptance/realtime/message_spec.rb" time="0.394838"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol an array of hashes (#RSL1a) publishes three messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.378526"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported extra payload content type (#RTL6h, #RSL6a2) nil is encoded and decoded to the same Array" file="./spec/acceptance/realtime/message_spec.rb" time="0.205730"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported extra payload content type (#RTL6h, #RSL6a2) JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/message_spec.rb" time="0.359453"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol with supported extra payload content type (#RTL6h, #RSL6a2) JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/message_spec.rb" time="0.347112"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol when the message publisher has a client_id contains a #client_id attribute" file="./spec/acceptance/realtime/message_spec.rb" time="0.565371"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol when message is published, the connection disconnects before the ACK is received, and the connection is resumed publishes the message again, later receives the ACK and only one message is ever received from Ably" file="./spec/acceptance/realtime/message_spec.rb" time="2.471499"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an unencrypted channel and subscribing on an encrypted channel with another client does not attempt to decrypt the message" file="./spec/acceptance/realtime/message_spec.rb" time="0.523865"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing on an unencrypted channel with another client logs a Cipher error (#RTL7e)" file="./spec/acceptance/realtime/message_spec.rb" time="0.719167"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing on an unencrypted channel with another client delivers the message but still encrypted with a value in the #encoding attribute (#RTL7e)" file="./spec/acceptance/realtime/message_spec.rb" time="0.713736"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing with a different algorithm on another client delivers the message but still encrypted with the cipher detials in the #encoding attribute (#RTL7e)" file="./spec/acceptance/realtime/message_spec.rb" time="0.506119"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing with a different algorithm on another client emits a Cipher error on the channel (#RTL7e)" file="./spec/acceptance/realtime/message_spec.rb" time="0.689900"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing with a different key on another client delivers the message but still encrypted with the cipher details in the #encoding attribute" file="./spec/acceptance/realtime/message_spec.rb" time="0.704428"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages publishing on an encrypted channel and subscribing with a different key on another client emits a Cipher error on the channel" file="./spec/acceptance/realtime/message_spec.rb" time="0.680244"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 38 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.382781"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 38 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.364507"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 29 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.396653"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 29 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.536032"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 5 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.371712"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 5 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.381127"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 58 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.427542"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 58 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.389768"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 16 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.349396"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 16 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.567224"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 66 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.329149"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 66 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.385673"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 32 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.339905"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 32 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.382816"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 27 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.384682"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 27 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.388012"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 21 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.389961"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 21 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.347796"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 64 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.414311"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 64 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.411596"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 62 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.397796"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 62 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.351367"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.349715"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.378119"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 36 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.399379"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 36 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.343802"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 25 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.377167"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 25 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.342944"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 18 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.379230"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 18 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.365705"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 30 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.371664"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 30 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.365078"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 53 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.399661"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 53 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.355147"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 47 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.365201"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 47 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.399770"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 35 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.372976"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 35 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.406791"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.366418"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.385101"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 46 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.420216"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 46 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.346051"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 44 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.342459"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 44 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.404020"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 57 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.370499"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 57 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.350902"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 50 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.387504"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 50 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.364914"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 34 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.391363"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 34 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.330549"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 15 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.355996"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 15 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.406327"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 28 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.414414"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 28 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.347595"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 40 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.369812"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 40 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.406447"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 7 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.376074"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 7 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.366273"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 37 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.351529"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 37 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.376016"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 12 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.391266"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 12 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.497591"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 39 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.335773"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 39 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.406026"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 60 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.359140"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 60 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.389253"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 17 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.356796"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 17 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.394985"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 42 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.340069"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 42 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.390258"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 14 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.394529"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 14 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.379693"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 23 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.366825"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 23 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.383226"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 22 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.409643"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 22 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.358142"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 71 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.382591"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 71 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.371708"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 26 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.350447"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 26 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.383572"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 49 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.387887"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 49 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.379330"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 61 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.349577"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 61 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.386317"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 11 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.358600"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 11 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.398545"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 43 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.370180"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 43 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.394477"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 20 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.368397"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 20 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.397809"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 73 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.358930"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 73 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.428671"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 55 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.376551"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 55 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.375810"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 65 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.383774"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 65 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.365938"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 72 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.411224"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 72 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.367274"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 24 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.332257"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 24 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.394294"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 6 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.404869"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 6 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.370410"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 41 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.345747"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 41 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.407387"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 54 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.434002"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 54 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.359284"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.348196"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.364674"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 59 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.387370"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 59 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.334090"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 13 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.367698"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 13 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.354348"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 67 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.370120"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 67 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.399317"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 10 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.369943"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 10 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.358111"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 9 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.390994"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 9 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.384553"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 48 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.373340"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 48 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.395240"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 56 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.342413"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 56 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.401966"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 8 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.350327"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 8 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.371235"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 45 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.357328"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 45 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.401231"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 31 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.406245"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 31 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.353172"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.408243"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.355100"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 63 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.393015"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 63 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.377048"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 69 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.357672"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 69 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.421930"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 52 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.432928"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 52 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.377462"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 4 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.384961"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 4 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.444244"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 33 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.403588"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 33 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.360368"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 51 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.383314"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 51 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.405742"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 70 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.391132"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 70 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.344572"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 19 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.348452"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 19 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.399116"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 68 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.354875"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 68 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.430119"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with multiple sends from one client to another receives raw messages with the correct encoding" file="./spec/acceptance/realtime/message_spec.rb" time="0.724700"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with multiple sends from one client to another encrypts and decrypts all messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.922611"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.337951"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.365845"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.382755"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.378730"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.392665"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.354236"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe encrypts message automatically before they are pushed to the server (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.404756"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter with #publish and #subscribe sends and receives messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/realtime/message_spec.rb" time="0.339771"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages subscribing with a different transport protocol delivers a Hash payload to the receiver" file="./spec/acceptance/realtime/message_spec.rb" time="0.562293"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages subscribing with a different transport protocol delivers a String UTF-8 payload to the receiver" file="./spec/acceptance/realtime/message_spec.rb" time="0.549051"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol encoding and decoding encrypted messages subscribing with a different transport protocol delivers a String ASCII-8BIT payload to the receiver" file="./spec/acceptance/realtime/message_spec.rb" time="0.564212"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol a single Message object (#RSL1a) publishes the message" file="./spec/acceptance/realtime/message_spec.rb" time="0.355027"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol server incorrectly resends a message that was already received by the client library discards the message and logs it as an error to the channel" file="./spec/acceptance/realtime/message_spec.rb" time="1.122171"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol #connection_id attribute when retrieved over REST matches the sender connection#id" file="./spec/acceptance/realtime/message_spec.rb" time="0.507199"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol #connection_id attribute over realtime matches the sender connection#id" file="./spec/acceptance/realtime/message_spec.rb" time="0.542197"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol local echo when published is enabled by default" file="./spec/acceptance/realtime/message_spec.rb" time="0.378100"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol local echo when published with :echo_messages option set to false will not echo messages to the client from other REST clients publishing using that connection_key" file="./spec/acceptance/realtime/message_spec.rb" time="2.003297"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol local echo when published with :echo_messages option set to false will echo messages with a valid connection_id to the client from other REST clients publishing using that connection_key" file="./spec/acceptance/realtime/message_spec.rb" time="1.913660"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol local echo when published with :echo_messages option set to false will not echo messages to the client but will still broadcast messages to other connected clients" file="./spec/acceptance/realtime/message_spec.rb" time="2.223723"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol an array of Message objects (#RSL1a) publishes three messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.324121"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol when message is published, the connection disconnects before the ACK is received the connection becomes failed calls the errback for all messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.298059"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol when message is published, the connection disconnects before the ACK is received the connection is not resumed calls the errback for all messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.427186"></testcase>
<testcase classname="spec.acceptance.realtime.message_spec" name="Ably::Realtime::Channel Message using JSON protocol when message is published, the connection disconnects before the ACK is received the connection becomes suspended calls the errback for all messages" file="./spec/acceptance/realtime/message_spec.rb" time="0.304183"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with no error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.305887"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with a token error code in the range 40140 &lt;= code &lt; 40150 (#RTN14b) triggers a re-authentication" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.641902"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with an error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.307327"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with no error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.154716"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with a token error code in the range 40140 &lt;= code &lt; 40150 (#RTN14b) triggers a re-authentication" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.432597"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with an error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.154727"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server reconnects automatically and immediately (#RTN15a)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.472584"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored resumes connections when disconnected within the connection_state_ttl period (#RTN15g)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.453384"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since being disconnected clears the local connection state and uses a new connection when the connection_state_ttl period has passed (#RTN15g)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="5.069786"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection still reattaches the channels automatically following a new connection being established (#RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.585759"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection clears the local connection state and uses a new connection when the connection_state_ttl + max_idle_interval period has passed since last activity (#RTN15g1, #RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.462332"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection does not clear the local connection state when the connection_state_ttl period has passed since last activity, but the idle timeout has not passed (#RTN15g1, #RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.440333"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server and subsequently fails to reconnect retries every 15 seconds" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="1.821769"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server when protocolMessage contains token error library have a means to renew the token (#RTN15h2) attempts to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.337099"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server when protocolMessage contains token error library does not have a means to renew the token (#RTN15h1) moves connection state to failed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.679196"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume as the DISCONNECTED window to resume has passed starts a new connection automatically and does not try and resume" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.457497"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid updates the connection_id and connection_key" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.470158"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a reattach for all attached channels and fail all message awaiting an ACK (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.662704"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a attach for all suspended channels (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.583696"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid sets the error reason on each channel" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.539268"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid continues to use the client_msg_serial (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="1.056573"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a reattach for all attaching channels and fail all queued messages (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.550499"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume whilst resuming with a token error code in the region 40140 &lt;= code &lt; 40150 (RTN15c5) triggers a re-authentication and then resumes the connection" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.000011"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when websocket transport is abruptly disconnected reconnects automatically" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.419705"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when websocket transport is abruptly disconnected hosts used reconnects with the default host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.447085"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume with any other error (#RTN15c4) moves the connection to the failed state" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.654675"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains connection_id and updates the connection_key (#RTN15e, #RTN16d)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.467506"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains the client_msg_serial (#RTN15c2, #RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="1.088429"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming includes the error received in the connection state change from Ably but leaves the channels attached" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="1.007125"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains channel subscription state" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.917149"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming executes the resume callback" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.523136"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming when messages were published whilst the client was disconnected receives the messages published whilst offline" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.896580"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry #connect connection opening times out attempts to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="1.658622"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry #connect connection opening times out when retry intervals are stubbed to attempt reconnection quickly never calls the provided success block" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.608898"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended stays in the suspended state after any number of reconnection attempts" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.935593"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended for the first time waits suspended_retry_timeout before attempting to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.542066"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended #close transitions connection state to :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.844120"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason is reset to nil when :connected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.311200"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason is reset to nil when :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.169089"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is failed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.810754"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is disconnected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.024810"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is suspended" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.831460"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected enters the suspended state after multiple attempts to connect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.822619"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected #close transitions connection state to :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.173461"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected for the first time reattempts connection immediately and then waits disconnected_retry_timeout for a subsequent attempt" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.193170"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :failed #close will not transition state to :close and fails with an InvalidStateChange exception" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.810964"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is down never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.969306"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up :fallback_hosts array is provided by an empty array uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.210555"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses the primary host when suspended, and then every fallback host and the primary host again on every subsequent suspended attempt" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.016051"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses the correct host name for the WebSocket requests to the fallback hosts" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.010846"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses a fallback host + the original host once on every subsequent disconnected attempt until suspended" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.192038"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up :fallback_hosts array is provided uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.219762"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with custom realtime websocket host option never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.968696"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts array is provided uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.268309"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is true uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k7)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.358848"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is true does not use a fallback host if the connection connects on the default host and then later becomes disconnected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="6.684395"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is unset uses fallback hosts by default" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="8.325409"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with custom realtime websocket port option never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.969368"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_callback opening a new connection when callback fails due to an exception the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.160380"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_callback opening a new connection existing CONNECTED connection when callback fails due to the request taking longer than realtime_request_timeout the authorization request fails as configured in the realtime_request_timeout (#RSA4c, #RSA4c1, #RSA4c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.151517"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails once due to slow response but succeeds the second time the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="10.158843"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to network failure the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.239104"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to invalid content the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.166435"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to slow response and subsequent timeout the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="21.667014"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url existing CONNECTED connection authorize request failure leaves connection in existing condition the connection remains in the CONNECTED state and authorize fails (#RSA4c, #RSA4c1, #RSA4c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.184276"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure when API key is invalid with invalid key name part of the key enters the failed state and returns an authorization error" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.520923"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure when API key is invalid with invalid app part of the key enters the failed state and returns a not found error" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.503906"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list (#RSH1c1) returns an empty PaginatedResult if params do not match" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.011153"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list (#RSH1c1) raises an exception if none of the required filters are provided" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.829114"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list (#RSH1c1) provides filtering" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.462690"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list (#RSH1c1) returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.958783"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list (#RSH1c1) supports paging" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.948203"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove (#RSH1c4) succeeds even if there is no match" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.777768"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove (#RSH1c4) removes match for Hash object by channel and device_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.920146"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove (#RSH1c4) removes match for PushChannelSubscription object by channel and client_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.807024"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove (#RSH1c4) removes match for PushChannelSubscription object by channel and client_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.809276"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove (#RSH1c4) removes match for Hash object by channel and client_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.771761"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list_channels (#RSH1c2) returns an accurate number of channels after devices are deleted" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.393731"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list_channels (#RSH1c2) returns a PaginatedResult object containing String objects" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.036083"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #list_channels (#RSH1c2) supports paging" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.873462"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove_where (#RSH1c5) device_id and client_id filters in the same request are not suppoorted" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.057923"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove_where (#RSH1c5) removes matching channels" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.890709"><skipped/></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove_where (#RSH1c5) succeeds on no match" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.024476"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove_where (#RSH1c5) removes matching client_ids" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.846202"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #remove_where (#RSH1c5) removes matching device_ids" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.958998"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) allows arbitrary number of subsequent saves" file="./spec/acceptance/rest/push_admin_spec.rb" time="1.492772"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) saves the new client_id PushChannelSubscription Hash object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.630746"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) saves the client_id PushChannelSubscription object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.666099"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) fails if data is invalid" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.632572"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) saves the device_id PushChannelSubscription object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.650520"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #channel_subscriptions (#RSH1c) #save (#RSH1c3) saves the new device_id PushChannelSubscription Hash object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.882779"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish accepts valid push data and recipient (#RSH1a)" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.048847"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid arguments (#RHS1a) raises an exception with a empty recipient" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.001283"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid arguments (#RHS1a) raises an exception with a nil recipient" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.001096"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid arguments (#RHS1a) raises an exception with a empty recipient" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.001009"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid arguments (#RHS1a) raises an exception with a nil recipient" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.001028"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid push data (#RSH1a) raises an error after receiving a 40x realtime response" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.044345"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish recipient variable case is converted to snakeCase" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.005701"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish using test environment channel recipient (#RSH1a) triggers a push notification" file="./spec/acceptance/rest/push_admin_spec.rb" time="5.113661"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish without publish permissions raises a permissions issue exception" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.091729"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #publish invalid recipient (#RSH1a) raises an error after receiving a 40x realtime response" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.043483"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove (#RSH1b4) removes the provided DeviceDetails" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.663972"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove (#RSH1b4) removes the provided device id string" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.548396"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove (#RSH1b4) succeeds if the item does not exist" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.477299"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) without permissions raises a permissions not authorized exception" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.238167"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove_where (#RSH1b5) succeeds even if there is no match" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.522043"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove_where (#RSH1b5) removes all matching device registrations by client_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.518093"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #remove_where (#RSH1b5) removes device by device_id" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.789662"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #list (#RSH1b2) supports paging" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.589635"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #list (#RSH1b2) provides filtering" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.704995"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #list (#RSH1b2) returns an empty PaginatedResult if not params match" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.543782"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #list (#RSH1b2) returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.608679"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #get (#RSH1b1) returns a DeviceDetails object if a DeviceDetails object is provided" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.451072"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #get (#RSH1b1) returns a DeviceDetails object if a device ID string is provided" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.471296"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #get (#RSH1b1) raises a ResourceMissing exception if device ID does not exist" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.512614"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) allows device_secret to be configured" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.441915"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) does not allow some fields to be configured" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.379343"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) fails if data is invalid" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.112673"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) saves the associated DevicePushDetails" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.382445"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) saves the new DeviceDetails object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.370745"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) saves the new DeviceDetails Hash object" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.390458"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) allows arbitrary number of subsequent saves" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.870139"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) with GCM target saves the associated DevicePushDetails" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.387079"></testcase>
<testcase classname="spec.acceptance.rest.push_admin_spec" name="Ably::Rest::Push::Admin using JSON protocol #device_registrations (#RSH1b) #save (#RSH1b3) with web target saves the associated DevicePushDetails" file="./spec/acceptance/rest/push_admin_spec.rb" time="0.376108"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_params returns the auth params asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.165367"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_params_sync returns the auth params synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154193"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_header returns an auth header asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154857"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_header_sync returns an auth header synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.153927"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #create_token_request returns a token request asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154966"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #request_token returns a token asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.197802"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when implicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenRequest object passed to the auth callback and fails with an exception rejects a TokenRequests object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="0.311620"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when implicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="0.300649"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize with auth_callback blocking with a slow auth callback response asynchronously authenticates" file="./spec/acceptance/realtime/auth_spec.rb" time="5.357741"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize with token auth returns a token asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.378597"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when explicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="0.482617"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token ensures message delivery continuity whilst upgrading (#RTC8a1)" file="./spec/acceptance/realtime/auth_spec.rb" time="4.739216"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when the authCallback fails calls the error callback of authorize and leaves the connection intact (#RSA4c3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.554336"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when in the CONNECTED state with a valid token in the AUTH ProtocolMessage sent obtains a new token (as anonymous user before &amp; after) and upgrades the connection after receiving an updated CONNECTED ProtocolMessage (#RTC8a, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.676155"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when in the CONNECTED state with a valid token in the AUTH ProtocolMessage sent obtains a new token (that upgrades from anonymous to identified) and upgrades the connection after receiving an updated CONNECTED ProtocolMessage (#RTC8a, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.001061"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when CONNECTING aborts the current connection process, obtains a token, and connects to Ably again (#RTC8b)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.606808"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when INITIALIZED obtains a token and connects to Ably (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.806059"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when auth fails transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.629093"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when FAILED obtains a token and connects to Ably (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.774368"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when SUSPENDED obtains a token and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="1.366724"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when downgrading capabilities (#RTC8a1) is allowed and channels are detached" file="./spec/acceptance/realtime/auth_spec.rb" time="0.466281"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when upgrading capabilities is allowed (#RTC8a1)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.569714"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when CLOSED obtains a token and connects to Ably (#RTC8c, #RTC8b1, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.835765"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when client is identified transitions the connection state to FAILED if the client_id changes (#RSA15c, #RTC8a2)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.395069"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when DISCONNECTED obtains a similar anonymous token and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="1.363482"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when DISCONNECTED obtains a token, upgrades from anonymous to identified, and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.001362"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #create_token_request_async returns a token request synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154757"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #request_token_async returns a token synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.197639"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize_async returns a token synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="0.240478"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol deprecated #authorise returns a valid token (#RSA10l)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.337457"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol deprecated #authorise logs a deprecation warning (#RSA10l)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.166512"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the JWT token request includes a client_id the client_id is the same that was specified in the auth_callback that generated the JWT token" file="./spec/acceptance/realtime/auth_spec.rb" time="0.660099"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_callback when credentials are valid authentication succeeds and client can post a message" file="./spec/acceptance/realtime/auth_spec.rb" time="0.859440"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_callback when credentials are invalid authentication fails and reason for disconnection is invalid signature" file="./spec/acceptance/realtime/auth_spec.rb" time="0.631314"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the client is initialized with ClientOptions and the token is a JWT token when credentials are invalid fails with an invalid signature error" file="./spec/acceptance/realtime/auth_spec.rb" time="0.644320"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the client is initialized with ClientOptions and the token is a JWT token when credentials are valid posts successfully to a channel" file="./spec/acceptance/realtime/auth_spec.rb" time="0.870756"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when credentials are valid client successfully fetches a channel and publishes a message" file="./spec/acceptance/realtime/auth_spec.rb" time="0.833097"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when token is expired receives a 40142 error from the server" file="./spec/acceptance/realtime/auth_spec.rb" time="5.194658"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when credentials are wrong disconnected includes and invalid signature message" file="./spec/acceptance/realtime/auth_spec.rb" time="0.617489"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when JWT token expires client disconnects, a new token is requested via auth_callback and the client gets reconnected" file="./spec/acceptance/realtime/auth_spec.rb" time="5.877251"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when JWT token expires and an AUTH procol message is received client reauths correctly without going through a disconnection" file="./spec/acceptance/realtime/auth_spec.rb" time="4.858837"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the JWT token request includes a subscribe-only capability client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions" file="./spec/acceptance/realtime/auth_spec.rb" time="0.856759"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #using_basic_auth? is true when using Basic Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154312"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #using_token_auth? is false when using Basic Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154175"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #authentication_security_requirements_met? returns true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154807"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key_secret contains the API key secret" file="./spec/acceptance/realtime/auth_spec.rb" time="0.152946"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key contains the API key" file="./spec/acceptance/realtime/auth_spec.rb" time="0.155132"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key_name contains the API key name" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154508"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol server initiated AUTH ProtocolMessage when received should immediately start a new authentication process (#RTN22)" file="./spec/acceptance/realtime/auth_spec.rb" time="3.282559"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol server initiated AUTH ProtocolMessage when not received should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)" file="./spec/acceptance/realtime/auth_spec.rb" time="5.383772"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.198472"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.353953"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.205883"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.337962"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a client_id is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.209426"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a client_id once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.326345"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.301051"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth once connected contains a validated wildcard client_id" file="./spec/acceptance/realtime/auth_spec.rb" time="0.289948"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth before connected is false as basic auth users do not have an identity" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154206"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="0.206798"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id before connected #client_id is nil" file="./spec/acceptance/realtime/auth_spec.rb" time="0.195333"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.342005"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id once connected #client_id is populated" file="./spec/acceptance/realtime/auth_spec.rb" time="0.358257"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with no client_id (anonymous) before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="0.196405"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with no client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.335284"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a wildcard client_id (anonymous) before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="0.195168"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a wildcard client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="0.334160"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token request with a client_id is not true as identification is not confirmed until authenticated" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154362"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token request with a client_id once connected is true as identification is completed following CONNECTED ProtocolMessage" file="./spec/acceptance/realtime/auth_spec.rb" time="0.553076"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #using_basic_auth? is false when using Token Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="0.348775"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #current_token_details contains the current token after auth" file="./spec/acceptance/realtime/auth_spec.rb" time="0.342380"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #token_params contains the configured auth options" file="./spec/acceptance/realtime/auth_spec.rb" time="0.339302"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #options (auth_options) contains the configured auth options" file="./spec/acceptance/realtime/auth_spec.rb" time="0.669774"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #client_id contains the ClientOptions client ID" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154337"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #using_token_auth? is true when using Token Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="0.341384"></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #token_renewable? is true when an API key exists" file="./spec/acceptance/realtime/auth_spec.rb" time="0.154022"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings defaults suspended_retry_timeout is 30s" file="./spec/acceptance/realtime/client_spec.rb" time="0.154871"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings defaults disconnected_retry_timeout is 15s" file="./spec/acceptance/realtime/client_spec.rb" time="0.153795"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings overriden in ClientOptions disconnected_retry_timeout is updated" file="./spec/acceptance/realtime/client_spec.rb" time="0.154159"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings overriden in ClientOptions suspended_retry_timeout is updated" file="./spec/acceptance/realtime/client_spec.rb" time="0.154419"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS enabled and a pre-generated Token provided with the :token option connects using token auth" file="./spec/acceptance/realtime/client_spec.rb" time="0.509619"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS enabled with valid :key and :use_token_auth option set to true automatically authorizes on connect and generates a token" file="./spec/acceptance/realtime/client_spec.rb" time="0.344284"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS disabled and a pre-generated Token provided with the :token option connects using token auth" file="./spec/acceptance/realtime/client_spec.rb" time="0.511449"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS disabled with valid :key and :use_token_auth option set to true automatically authorizes on connect and generates a token" file="./spec/acceptance/realtime/client_spec.rb" time="0.340630"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with an invalid wildcard &quot;*&quot; :client_id raises an exception" file="./spec/acceptance/realtime/client_spec.rb" time="0.001630"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/realtime/client_spec.rb" time="0.343336"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option calls the Proc" file="./spec/acceptance/realtime/client_spec.rb" time="0.341937"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option when the returned token has a client_id sets Auth#client_id to the new token&apos;s client_id immediately when connecting" file="./spec/acceptance/realtime/client_spec.rb" time="0.339400"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option when the returned token has a client_id sets Client#client_id to the new token&apos;s client_id immediately when connecting" file="./spec/acceptance/realtime/client_spec.rb" time="0.346916"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option with a wildcard client_id token and an explicit client_id in ClientOptions allows uses the explicit client_id in the connection" file="./spec/acceptance/realtime/client_spec.rb" time="0.853766"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option with a wildcard client_id token and client_id omitted in ClientOptions uses the token provided clientId in the connection" file="./spec/acceptance/realtime/client_spec.rb" time="0.828139"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth is enabled by default with a provided :key option" file="./spec/acceptance/realtime/client_spec.rb" time="0.305304"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth with an invalid API key logs an entry with a help href url matching the code #TI5" file="./spec/acceptance/realtime/client_spec.rb" time="0.305005"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth :tls option set to false to force a plain-text connection fails to connect because a private key cannot be sent over a non-secure connection" file="./spec/acceptance/realtime/client_spec.rb" time="0.152732"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #auth provides access to the Realtime::Auth object" file="./spec/acceptance/realtime/client_spec.rb" time="0.153988"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) put supports put" file="./spec/acceptance/realtime/client_spec.rb" time="0.160155"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) post supports post" file="./spec/acceptance/realtime/client_spec.rb" time="0.160890"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get returns an HttpPaginatedResponse object" file="./spec/acceptance/realtime/client_spec.rb" time="0.192504"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get 404 request to invalid URL returns an object with 404 status code and error message" file="./spec/acceptance/realtime/client_spec.rb" time="0.289440"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get paged results provides paging" file="./spec/acceptance/realtime/client_spec.rb" time="0.926694"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) delete supports delete" file="./spec/acceptance/realtime/client_spec.rb" time="0.160672"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) patch supports patch" file="./spec/acceptance/realtime/client_spec.rb" time="0.160290"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #connection provides access to the Connection object" file="./spec/acceptance/realtime/client_spec.rb" time="0.154147"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing on a closed connection fails" file="./spec/acceptance/realtime/client_spec.rb" time="0.341934"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing supports an array of Hash objects" file="./spec/acceptance/realtime/client_spec.rb" time="0.692818"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing a message implicity connects and publishes the message successfully on the provided channel" file="./spec/acceptance/realtime/client_spec.rb" time="0.727848"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing supports an array of Message objects" file="./spec/acceptance/realtime/client_spec.rb" time="0.717892"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing does not result in a channel being created" file="./spec/acceptance/realtime/client_spec.rb" time="1.156184"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) queue_messages ClientOption when false will reject messages on an initializing connection" file="./spec/acceptance/realtime/client_spec.rb" time="0.483667"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) queue_messages ClientOption when true will queue messages whilst connecting and publish once connected" file="./spec/acceptance/realtime/client_spec.rb" time="0.686178"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) with more than allowed messages in a single publish rejects the publish" file="./spec/acceptance/realtime/client_spec.rb" time="0.154320"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) with extras publishing supports extras" file="./spec/acceptance/realtime/client_spec.rb" time="0.855030"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #channels provides access to the Channels collection object" file="./spec/acceptance/realtime/client_spec.rb" time="0.154163"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error without request_id and no fallback hosts does not include request_id in ConnectionTimeout error" file="./spec/acceptance/rest/client_spec.rb" time="0.054538"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error with option add_request_ids: true and REST operations with a message body without mocks to ensure the requests are accepted with an array publish succeeds and sends the request_id as a param" file="./spec/acceptance/rest/client_spec.rb" time="0.132863"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error with option add_request_ids: true and REST operations with a message body without mocks to ensure the requests are accepted with a single publish succeeds and sends the request_id as a param" file="./spec/acceptance/rest/client_spec.rb" time="0.126320"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error with option add_request_ids: true and REST operations with a message body with mocks to inspect the params with a single publish succeeds and sends the request_id as a param" file="./spec/acceptance/rest/client_spec.rb" time="0.008943"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error with option add_request_ids: true and REST operations with a message body with mocks to inspect the params with an array publish succeeds and sends the request_id as a param" file="./spec/acceptance/rest/client_spec.rb" time="0.008244"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error with option add_request_ids: true and no fallback hosts has an error with the same request_id of the request" file="./spec/acceptance/rest/client_spec.rb" time="0.005003"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) Timeout error option add_request_ids: true and specified fallback hosts request_id is the same across retries" file="./spec/acceptance/rest/client_spec.rb" time="0.023428"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol request_id generation (#RSC7c) UnauthorizedRequest nonce error includes request_id in UnauthorizedRequest error due to replayed nonce" file="./spec/acceptance/rest/client_spec.rb" time="0.088014"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize auth headers with token auth when setting constructor ClientOption :tls to false sends the token string over HTTP in the Authorization Bearer header with Base64 encoding" file="./spec/acceptance/rest/client_spec.rb" time="0.006924"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize auth headers with token auth without specifying protocol sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding" file="./spec/acceptance/rest/client_spec.rb" time="0.006878"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize auth headers with basic auth sends the API key in authentication part of the secure URL (the Authorization: Basic header is not used with the Faraday HTTP library by default)" file="./spec/acceptance/rest/client_spec.rb" time="0.006361"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an auth URL uses token authentication" file="./spec/acceptance/rest/client_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an auth URL before any REST request sends an HTTP request to the provided auth URL to get a new token" file="./spec/acceptance/rest/client_spec.rb" time="0.097585"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with :use_token_auth set to true uses token authentication" file="./spec/acceptance/rest/client_spec.rb" time="0.001136"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with only an API key uses basic authentication" file="./spec/acceptance/rest/client_spec.rb" time="0.000968"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an invalid API key logs an entry with a help href url matching the code #TI5" file="./spec/acceptance/rest/client_spec.rb" time="0.202132"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an :auth_callback lambda uses token authentication" file="./spec/acceptance/rest/client_spec.rb" time="0.001174"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an :auth_callback lambda calls the auth lambda to get a new token" file="./spec/acceptance/rest/client_spec.rb" time="0.089644"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an explicit string :token uses token authentication" file="./spec/acceptance/rest/client_spec.rb" time="0.001570"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with a non string :client_id raises an ArgumentError" file="./spec/acceptance/rest/client_spec.rb" time="0.001236"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an invalid wildcard &quot;*&quot; :client_id raises an exception" file="./spec/acceptance/rest/client_spec.rb" time="0.000994"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with :default_token_params overides the default token params (#TO3j11)" file="./spec/acceptance/rest/client_spec.rb" time="0.041997"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #initialize with an :auth_callback lambda (clientId provided in library options instead of as a token_request param) correctly sets the clientId on the token" file="./spec/acceptance/rest/client_spec.rb" time="0.120069"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol using tokens when expired creates a new token automatically when the old token expires" file="./spec/acceptance/rest/client_spec.rb" time="1.244273"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol using tokens when expired with a different client_id in the subsequent token fails to authenticate and raises an exception" file="./spec/acceptance/rest/client_spec.rb" time="1.135433"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol using tokens when token has not expired reuses the existing token for every request" file="./spec/acceptance/rest/client_spec.rb" time="1.136496"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport with custom http_open_timeout and http_request_timeout options for default host is configured to use custom open timeout" file="./spec/acceptance/rest/client_spec.rb" time="0.001616"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport with custom http_open_timeout and http_request_timeout options for default host is configured to use custom request timeout" file="./spec/acceptance/rest/client_spec.rb" time="0.001318"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport with custom http_open_timeout and http_request_timeout options for the fallback hosts is configured to timeout connection requests in 10 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.001913"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport with custom http_open_timeout and http_request_timeout options for the fallback hosts is configured to timeout connection opening in 4 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.002081"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport defaults for the fallback hosts is configured to timeout connection requests in 10 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.001902"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport defaults for the fallback hosts is configured to timeout connection opening in 4 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.001863"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport defaults for default host is configured to timeout connection opening in 4 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.001324"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol connection transport defaults for default host is configured to timeout connection requests in 10 seconds" file="./spec/acceptance/rest/client_spec.rb" time="0.001185"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol failed request logging is absent when requests do not fail" file="./spec/acceptance/rest/client_spec.rb" time="0.043877"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol failed request logging with all requests failing is present when all requests fail" file="./spec/acceptance/rest/client_spec.rb" time="0.048249"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol failed request logging with the first request failing is present with success message when requests do not actually fail" file="./spec/acceptance/rest/client_spec.rb" time="0.059602"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options is frozen" file="./spec/acceptance/rest/client_spec.rb" time="0.001055"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options defaults #http_max_retry_count is 3" file="./spec/acceptance/rest/client_spec.rb" time="0.001005"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options defaults #http_open_timeout is 4s" file="./spec/acceptance/rest/client_spec.rb" time="0.000921"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options defaults #http_request_timeout is 10s" file="./spec/acceptance/rest/client_spec.rb" time="0.000903"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options defaults #http_max_retry_duration is 15s" file="./spec/acceptance/rest/client_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options configured #http_max_retry_duration uses provided value" file="./spec/acceptance/rest/client_spec.rb" time="0.000926"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options configured #http_max_retry_count uses provided value" file="./spec/acceptance/rest/client_spec.rb" time="0.000870"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options configured #http_request_timeout uses provided value" file="./spec/acceptance/rest/client_spec.rb" time="0.000881"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol HTTP configuration options configured #http_open_timeout uses provided value" file="./spec/acceptance/rest/client_spec.rb" time="0.000729"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) delete supports delete" file="./spec/acceptance/rest/client_spec.rb" time="0.006299"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) put raises an exception once body size in bytes exceeded" file="./spec/acceptance/rest/client_spec.rb" time="0.004299"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) put supports put" file="./spec/acceptance/rest/client_spec.rb" time="0.005903"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) get returns an HttpPaginatedResponse object" file="./spec/acceptance/rest/client_spec.rb" time="0.045772"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) get 404 request to invalid URL returns an object with 404 status code and error message" file="./spec/acceptance/rest/client_spec.rb" time="0.047259"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) get paged results provides paging" file="./spec/acceptance/rest/client_spec.rb" time="0.733891"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) patch raises an exception once body size in bytes exceeded" file="./spec/acceptance/rest/client_spec.rb" time="0.004938"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) patch supports patch" file="./spec/acceptance/rest/client_spec.rb" time="0.005699"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) post raises an exception once body size in bytes exceeded" file="./spec/acceptance/rest/client_spec.rb" time="0.003941"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #request (#RSC19*, #TO3l9) post supports post" file="./spec/acceptance/rest/client_spec.rb" time="0.006123"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol version headers with custom ably-ruby/1.1.1 ruby/3.1.1 agent sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)" file="./spec/acceptance/rest/client_spec.rb" time="0.005436"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol version headers with default agent sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)" file="./spec/acceptance/rest/client_spec.rb" time="0.005399"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #auth configures the Auth object with all ClientOptions passed to client in the initializer" file="./spec/acceptance/rest/client_spec.rb" time="0.001037"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol #auth is provides access to the Auth object" file="./spec/acceptance/rest/client_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is not production and server returns a 50x error with an empty array of fallback hosts provided (#RSC15b, #TO3k6) does not attempt the fallback hosts as this is an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.006539"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is not production and server returns a 50x error with no fallback hosts provided (#TBC, see https://github.com/ably/wiki/issues/361) uses the default fallback hosts for that environment as this is not an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.016715"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is not production and server returns a 50x error with custom fallback hosts provided (#RSC15b, #TO3k6) attempts the fallback hosts as this is not an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.012957"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is not production and server returns a 50x error with fallback_hosts_use_default: true (#RSC15b, #TO3k7) attempts the default fallback hosts as this is an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.017347"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts configured should make connection attempts to a.ably-realtime.com, b.ably-realtime.com, c.ably-realtime.com, d.ably-realtime.com, e.ably-realtime.com (#RSC15a)" file="./spec/acceptance/rest/client_spec.rb" time="0.002835"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error attempts the fallback hosts as this is an authentication failure (#RSC15d)" file="./spec/acceptance/rest/client_spec.rb" time="0.011373"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and first request to primary endpoint fails tries a fallback host, and for the next request tries the primary endpoint again (#RSC15e)" file="./spec/acceptance/rest/client_spec.rb" time="0.011935"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and connection times out tries fallback hosts 3 times (#RSC15b, #RSC15b)" file="./spec/acceptance/rest/client_spec.rb" time="0.009903"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and connection times out and the total request time exeeds 15 seconds makes no further attempts to any fallback hosts" file="./spec/acceptance/rest/client_spec.rb" time="0.757230"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and basic authentication fails does not attempt the fallback hosts as this is an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.006945"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and connection fails tries fallback hosts 3 times" file="./spec/acceptance/rest/client_spec.rb" time="0.010080"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is NOT production (#RSC15b) and no custom fallback hosts are provided should make connection attempts to sandbox-a-fallback.ably-realtime.com, sandbox-b-fallback.ably-realtime.com, sandbox-c-fallback.ably-realtime.com, sandbox-d-fallback.ably-realtime.com, sandbox-e-fallback.ably-realtime.com (#RSC15a)" file="./spec/acceptance/rest/client_spec.rb" time="0.002746"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is NOT production (#RSC15b) and custom fallback hosts are empty does not retry failed requests with fallback hosts when there is a connection error" file="./spec/acceptance/rest/client_spec.rb" time="0.005433"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error with an empty array of fallback hosts provided (#RSC15b, #RSC15a, #TO3k6) does not attempt the fallback hosts as this is an authentication failure" file="./spec/acceptance/rest/client_spec.rb" time="0.005464"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server to fail the primary host, allow a fallback to succeed, then later trigger a fallback to the primary host (#RSC15f) succeeds and remembers fallback host preferences across requests" file="./spec/acceptance/rest/client_spec.rb" time="0.124326"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server to fail the primary host, allow a fallback to succeed, then later trigger a fallback to the primary host (#RSC15f) with custom :fallback_retry_timeout stops using the preferred fallback after this time" file="./spec/acceptance/rest/client_spec.rb" time="5.058051"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server and failing the primary host tries one of the fallback hosts" file="./spec/acceptance/rest/client_spec.rb" time="0.031895"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server and timing out the primary host GET with request timeout more than max_retry_duration does not try any fallback hosts (#RSC15d)" file="./spec/acceptance/rest/client_spec.rb" time="3.004571"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server and timing out the primary host GET with request timeout less than max_retry_duration tries the primary host, then both fallback hosts (#RSC15d)" file="./spec/acceptance/rest/client_spec.rb" time="6.013612"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server and timing out the primary host POST with request timeout less than max_retry_duration tries the primary host, then both fallback hosts (#RSC15d)" file="./spec/acceptance/rest/client_spec.rb" time="6.010964"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error using a local web-server and timing out the primary host POST with request timeout more than max_retry_duration does not try any fallback hosts (#RSC15d)" file="./spec/acceptance/rest/client_spec.rb" time="3.010400"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol fallback hosts when environment is production and server returns a 50x error with custom fallback hosts provided attempts the fallback hosts as this is an authentication failure (#RSC15b, #RSC15a, #TO3k6)" file="./spec/acceptance/rest/client_spec.rb" time="0.012736"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol with a custom host that times out fails immediately and raises a Faraday Error" file="./spec/acceptance/rest/client_spec.rb" time="0.005365"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol with a custom host that times out fallback hosts are never used" file="./spec/acceptance/rest/client_spec.rb" time="0.009815"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol with a custom host that does not exist fails immediately and raises a Faraday Error" file="./spec/acceptance/rest/client_spec.rb" time="0.083812"></testcase>
<testcase classname="spec.acceptance.rest.client_spec" name="Ably::Rest::Client using JSON protocol with a custom host that does not exist fallback hosts are never used" file="./spec/acceptance/rest/client_spec.rb" time="0.009360"></testcase>
<testcase classname="spec.acceptance.rest.push_spec" name="Ably::Rest::Push using JSON protocol #deactivate raises an unsupported exception" file="./spec/acceptance/rest/push_spec.rb" time="0.001031"></testcase>
<testcase classname="spec.acceptance.rest.push_spec" name="Ably::Rest::Push using JSON protocol #activate raises an unsupported exception" file="./spec/acceptance/rest/push_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol publishing with an ASCII_8BIT message name is converted into UTF_8" file="./spec/acceptance/rest/message_spec.rb" time="0.403329"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol an array of Message objects (#RSL1a) publishes three messages" file="./spec/acceptance/rest/message_spec.rb" time="0.271738"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with unsupported data payload content type False is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/rest/message_spec.rb" time="0.001278"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with unsupported data payload content type Boolean is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/rest/message_spec.rb" time="0.001005"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with unsupported data payload content type Float is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/rest/message_spec.rb" time="0.000842"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with unsupported data payload content type Integer is raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/rest/message_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) idempotent publishing is disabled by default with &lt;= 1.1 (#TO3n)" file="./spec/acceptance/rest/message_spec.rb" time="0.000861"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) idempotent publishing is enabled by default with &gt;= 1.2 (#TO3n)" file="./spec/acceptance/rest/message_spec.rb" time="0.000999"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) the ID is populated with a random ID and serial 0 from this lib (#RSL1k1)" file="./spec/acceptance/rest/message_spec.rb" time="0.487882"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) when there is a network failure triggering an automatic retry (#RSL1k4) for multiple messages in one publish operation" file="./spec/acceptance/rest/message_spec.rb" time="0.280796"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) when there is a network failure triggering an automatic retry (#RSL1k4) with explicitly provided message ID two REST publish retries result in only one message being published" file="./spec/acceptance/rest/message_spec.rb" time="0.537695"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) when there is a network failure triggering an automatic retry (#RSL1k4) with Message object two REST publish retries result in only one message being published" file="./spec/acceptance/rest/message_spec.rb" time="0.195836"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) when there is a network failure triggering an automatic retry (#RSL1k4) with #publish arguments only two REST publish retries result in only one message being published" file="./spec/acceptance/rest/message_spec.rb" time="0.332345"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when idempotent publishing is enabled in the client library ClientOptions (#TO3n) when publishing a batch of messages the ID is populated with a single random ID and sequence of serials from this lib (#RSL1k1)" file="./spec/acceptance/rest/message_spec.rb" time="0.300673"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is included (#RSL1k2, #RSL1k5) the ID provided is used for the published messages" file="./spec/acceptance/rest/message_spec.rb" time="0.295703"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is included (#RSL1k2, #RSL1k5) for multiple messages in one publish operation with IDs following the required format described in RSL1k1 (#RSL1k3)" file="./spec/acceptance/rest/message_spec.rb" time="0.428483"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is included (#RSL1k2, #RSL1k5) for multiple messages in one publish operation (#RSL1k3)" file="./spec/acceptance/rest/message_spec.rb" time="0.048535"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is included (#RSL1k2, #RSL1k5) with #publish arguments only three REST publishes result in only one message being published" file="./spec/acceptance/rest/message_spec.rb" time="0.211728"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is included (#RSL1k2, #RSL1k5) with Message object three REST publishes result in only one message being published" file="./spec/acceptance/rest/message_spec.rb" time="0.287797"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is not included (#RSL1k2) with Message object publishes the same message three times" file="./spec/acceptance/rest/message_spec.rb" time="0.208762"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol idempotency (#RSL1k) when ID is not included (#RSL1k2) with #publish arguments only publishes the same message three times" file="./spec/acceptance/rest/message_spec.rb" time="0.214270"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol a name with data payload (#RSL1a, #RSL1b) publishes the message" file="./spec/acceptance/rest/message_spec.rb" time="0.197858"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported extra payload content type (#RSL1h, #RSL6a2) JSON Array is encoded and decoded to the same deep multi-type object" file="./spec/acceptance/rest/message_spec.rb" time="0.289829"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported extra payload content type (#RSL1h, #RSL6a2) nil is encoded and decoded to the same Array" file="./spec/acceptance/rest/message_spec.rb" time="0.137939"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported extra payload content type (#RSL1h, #RSL6a2) JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/rest/message_spec.rb" time="0.127823"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol a single Message object (#RSL1a) publishes the message" file="./spec/acceptance/rest/message_spec.rb" time="0.174944"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 65 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002958"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 65 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132260"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 57 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.295141"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 57 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003020"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 73 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002469"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 73 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.136944"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 22 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.135679"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 22 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003261"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 46 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002605"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 46 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131190"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 62 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.180937"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 62 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003023"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 27 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002529"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 27 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.136870"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 56 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002853"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 56 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.135857"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 24 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002955"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 24 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130964"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 36 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002704"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 36 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.141723"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.162008"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002836"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 52 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.290078"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 52 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002939"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 37 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002480"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 37 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.138314"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 47 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002574"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 47 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.141156"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 25 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134260"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 25 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002975"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 43 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002625"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 43 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134414"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 40 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132225"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 40 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002747"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 60 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002450"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 60 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.296133"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 67 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.139077"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 67 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002929"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 16 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131163"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 16 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002708"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 59 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002427"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 59 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133569"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 13 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.144010"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 13 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002805"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 8 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133824"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 8 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002884"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 69 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002494"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 69 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.137629"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 66 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002881"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 66 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134484"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 6 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002697"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 6 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.136931"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 20 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002857"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 20 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.147549"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 31 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.139280"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 31 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002895"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 45 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002468"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 45 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.199237"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 54 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131346"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 54 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002924"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 61 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002540"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 61 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.139330"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 12 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002662"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 12 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130021"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 35 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002787"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 35 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134427"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 72 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.148527"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 72 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002813"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 41 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002461"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 41 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.135760"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 15 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002750"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 15 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132153"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 4 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.158509"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 4 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003183"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 19 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130208"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 19 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002618"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 42 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002592"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 42 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131026"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 21 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002702"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 21 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131644"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 48 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.129881"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 48 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002751"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 26 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002451"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 26 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.146049"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 10 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.137944"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 10 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002676"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 33 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131521"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 33 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002764"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 18 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002454"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 18 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.206032"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 30 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.212466"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 30 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002965"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 29 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130727"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 29 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002610"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 55 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.176503"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 55 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002951"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 34 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002845"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 34 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.147684"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 39 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002714"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 39 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.164348"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 58 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002700"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 58 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131918"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 11 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.136785"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 11 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002888"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 44 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.129157"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 44 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002766"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 38 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002633"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 38 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134808"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 7 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.135119"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 7 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002667"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131059"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002626"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 49 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002493"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 49 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.129670"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 5 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002601"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 5 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.140432"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 68 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.298656"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 68 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003266"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 63 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133036"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 63 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002635"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 17 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.129100"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 17 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002882"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 9 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133240"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 9 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002736"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 70 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130647"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 70 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002864"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 64 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002431"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 64 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.126930"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 28 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002694"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 28 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.151162"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 23 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002697"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 23 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.230345"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 14 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002828"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 14 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133023"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 71 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002744"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 71 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130212"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 32 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002893"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 32 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.134090"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 53 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132135"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 53 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002814"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 50 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002714"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 50 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.133021"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130502"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003075"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 51 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.129822"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 51 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002660"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.136434"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-256-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002656"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when publishing on an unencrypted channel and retrieving with #history on an encrypted channel does not attempt to decrypt the message" file="./spec/acceptance/rest/message_spec.rb" time="0.129888"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.130882"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.003020"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002507"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132743"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002717"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 1 with encrypted encoding cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.132414"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter sends and retrieves messages that are encrypted &amp; decrypted by the Ably library (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.131680"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d) item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64 behaves like an Ably encrypter and decrypter encrypts message automatically when published (#RTL7d)" file="./spec/acceptance/rest/message_spec.rb" time="0.002877"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history publishing on an encrypted channel and retrieving #history with a different algorithm on another client (#RTL7e) logs a Cipher exception (#RTL7e)" file="./spec/acceptance/rest/message_spec.rb" time="0.296869"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history publishing on an encrypted channel and retrieving #history with a different algorithm on another client (#RTL7e) retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)" file="./spec/acceptance/rest/message_spec.rb" time="0.145817"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history publishing on an encrypted channel and subscribing with a different key on another client logs a Cipher exception" file="./spec/acceptance/rest/message_spec.rb" time="0.132106"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history publishing on an encrypted channel and subscribing with a different key on another client retrieves the message that remains encrypted with an encrypted encoding attribute" file="./spec/acceptance/rest/message_spec.rb" time="0.136086"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when retrieving #history with a different protocol delivers a Hash payload to the receiver" file="./spec/acceptance/rest/message_spec.rb" time="0.151412"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when retrieving #history with a different protocol delivers a String UTF-8 payload to the receiver" file="./spec/acceptance/rest/message_spec.rb" time="0.130756"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when retrieving #history with a different protocol delivers a String ASCII-8BIT payload to the receiver" file="./spec/acceptance/rest/message_spec.rb" time="0.129136"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when publishing lots of messages encrypts on #publish and decrypts on #history" file="./spec/acceptance/rest/message_spec.rb" time="1.048232"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when publishing on an encrypted channel and retrieving with #history on an unencrypted channel logs a Cipher exception (#RTL7e)" file="./spec/acceptance/rest/message_spec.rb" time="0.131334"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol encryption and encoding with #publish and #history when publishing on an encrypted channel and retrieving with #history on an unencrypted channel retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)" file="./spec/acceptance/rest/message_spec.rb" time="0.129823"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/rest/message_spec.rb" time="0.128196"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/rest/message_spec.rb" time="0.345126"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/rest/message_spec.rb" time="0.127590"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/rest/message_spec.rb" time="0.144641"></testcase>
<testcase classname="spec.acceptance.rest.message_spec" name="Ably::Rest::Channel messages using JSON protocol an array of hashes (#RSL1a) publishes three messages" file="./spec/acceptance/rest/message_spec.rb" time="0.131354"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns a PaginatedResult model" file="./spec/acceptance/rest/channel_spec.rb" time="0.241451"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns paged history using the PaginatedResult model" file="./spec/acceptance/rest/channel_spec.rb" time="0.461955"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns the current message history for the channel" file="./spec/acceptance/rest/channel_spec.rb" time="0.271840"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history limit defaults to 100" file="./spec/acceptance/rest/channel_spec.rb" time="0.459813"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history message IDs is unique" file="./spec/acceptance/rest/channel_spec.rb" time="0.267593"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history direction returns paged history backwards by default" file="./spec/acceptance/rest/channel_spec.rb" time="0.253191"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history direction returns history forward if specified in the options" file="./spec/acceptance/rest/channel_spec.rb" time="0.248219"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history message timestamps are after the messages were published" file="./spec/acceptance/rest/channel_spec.rb" time="0.240312"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #presence returns a REST Presence object" file="./spec/acceptance/rest/channel_spec.rb" time="0.001186"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with name and data arguments publishes the message and return true indicating success" file="./spec/acceptance/rest/channel_spec.rb" time="0.177444"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with name and data arguments and additional attributes publishes the message with the attributes and return true indicating success" file="./spec/acceptance/rest/channel_spec.rb" time="0.130333"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish message size is exceeded (#TO3l8) should raise Ably::Exceptions::MaxMessageSizeExceeded exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.001920"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.173458"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.170505"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.047569"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with an invalid client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.046740"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with an empty client_id in the message succeeds and publishes without a client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.178083"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.173842"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.051707"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.171814"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with an invalid client_id in the message succeeds in the client library but then fails when published to Ably" file="./spec/acceptance/rest/channel_spec.rb" time="0.091861"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.181593"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.060496"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.173596"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.047807"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes when data is null publishes the message without a data attribute in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.175105"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes with neither name or data attributes publishes the message without any attributes in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.175157"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes when name is null publishes the message without a name attribute in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.175880"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a frozen message event name succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.199934"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a Message object publishes the message" file="./spec/acceptance/rest/channel_spec.rb" time="0.128793"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a Message object and query params should fail to publish the message (RSL1l1)" file="./spec/acceptance/rest/channel_spec.rb" time="0.045571"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish without adequate permissions on the channel raises a permission error when publishing" file="./spec/acceptance/rest/channel_spec.rb" time="0.090460"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with Messages and query params should fail to publish the message (RSL1l1)" file="./spec/acceptance/rest/channel_spec.rb" time="0.051776"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Hash objects with :name and :data attributes publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.193373"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a client_id configured in the ClientOptions publishes the message without a client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.002167"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a client_id configured in the ClientOptions expects a client_id to be added by the realtime service" file="./spec/acceptance/rest/channel_spec.rb" time="0.144988"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a non ASCII channel name stubbed correctly encodes the channel name" file="./spec/acceptance/rest/channel_spec.rb" time="0.006999"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a frozen payload succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.147060"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size is 655 bytes and messages size (177784 bytes) is bigger than the max_message_size should not publish and raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/acceptance/rest/channel_spec.rb" time="3.577888"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size is 655 bytes and messages size (130 bytes) is smaller than the max_message_size publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.199048"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size and max_frame_size is not set and messages size (177784 bytes) is bigger than the max_message_size should not publish and raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/acceptance/rest/channel_spec.rb" time="3.607896"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size and max_frame_size is not set and messages size (130 bytes) is smaller than the max_message_size publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.197526"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #status should return channel details status (#RSL8, #RSL8a)" file="./spec/acceptance/rest/channel_spec.rb" time="0.051643"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :end with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/channel_spec.rb" time="0.008033"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :end with a Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/channel_spec.rb" time="0.007393"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :start with a Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/channel_spec.rb" time="0.007227"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :start with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/channel_spec.rb" time="0.007226"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option when argument start is after end should raise an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.001056"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest using JSON protocol failed requests 500 server error without a valid JSON response body should raise a ServerError exception" file="./spec/acceptance/rest/base_spec.rb" time="0.014177"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest using JSON protocol failed requests server error with JSON error response body should raise a ServerError exception" file="./spec/acceptance/rest/base_spec.rb" time="0.011799"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest using JSON protocol failed requests due to invalid Auth should raise an InvalidRequest exception with a valid error message and code" file="./spec/acceptance/rest/base_spec.rb" time="0.195438"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest using JSON protocol token authentication failures when NOT auth#token_renewable? should raise an TokenExpired exception" file="./spec/acceptance/rest/base_spec.rb" time="0.014010"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest using JSON protocol token authentication failures when auth#token_renewable? should automatically reissue a token" file="./spec/acceptance/rest/base_spec.rb" time="0.016133"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest transport protocol when option {:use_binary_protocol=&gt;true} is used uses MsgPack" file="./spec/acceptance/rest/base_spec.rb" time="0.004385"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest transport protocol when option {:protocol=&gt;:msgpack} is used uses MsgPack" file="./spec/acceptance/rest/base_spec.rb" time="0.003821"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest transport protocol when option {:use_binary_protocol=&gt;false} is used uses JSON" file="./spec/acceptance/rest/base_spec.rb" time="0.003904"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest transport protocol when option {:protocol=&gt;:json} is used uses JSON" file="./spec/acceptance/rest/base_spec.rb" time="0.003761"></testcase>
<testcase classname="spec.acceptance.rest.base_spec" name="Ably::Rest transport protocol when protocol is not defined it defaults to :msgpack uses MsgPack" file="./spec/acceptance/rest/base_spec.rb" time="0.004003"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns a channel object" file="./spec/acceptance/realtime/channels_spec.rb" time="0.158604"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/realtime/channels_spec.rb" time="0.154784"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/realtime/channels_spec.rb" time="0.155387"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/realtime/channels_spec.rb" time="0.155340"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol accessing an existing channel object without specifying any channel options returns the existing channel without modifying the channel options" file="./spec/acceptance/realtime/channels_spec.rb" time="0.154444"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using #get method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/realtime/channels_spec.rb" time="0.154937"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol using #get method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/realtime/channels_spec.rb" time="0.155375"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol accessing an existing channel object with different options overrides the existing channel options and returns the channel object" file="./spec/acceptance/realtime/channels_spec.rb" time="0.299916"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol accessing an existing channel object with different options shows deprecation warning" file="./spec/acceptance/realtime/channels_spec.rb" time="0.156187"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol when channel supposed to trigger reattachment per RTL16a (#RTS3c1) will raise an error" file="./spec/acceptance/realtime/channels_spec.rb" time="0.369008"></testcase>
<testcase classname="spec.acceptance.realtime.channels_spec" name="Ably::Realtime::Channels using JSON protocol when channel supposed to trigger reattachment per RTL16a (#RTS3c1) params keys are the same but values are different will raise an error" file="./spec/acceptance/realtime/channels_spec.rb" time="0.332844"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list_channels returns a PaginatedResult object containing String objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="1.098397"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list supports paging" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.921617"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list raises an exception if none of the required filters are provided" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.574413"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.648971"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save saves the new client_id PushChannelSubscription Hash object" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.788837"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save raises an exception for invalid params" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.916857"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save failed requests fails for invalid requests" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.648193"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where succeeds on no match" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.739658"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where removes matching client_ids" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.817960"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where failed requests device_id and client_id filters in the same request are not supported" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.612111"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove succeeds even if there is no match" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.629065"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove removes match for Hash object by channel and client_id" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.713375"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.053815"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish accepts valid push data and recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.052129"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid push data raises an error after receiving a 40x realtime response" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.049953"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish using test environment channel recipient (#RSH1a) triggers a push notification" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.254706"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid recipient raises an error after receiving a 40x realtime response" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.049520"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish recipient variable case is converted to snakeCase" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.006795"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a nil recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.001504"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a nil recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.001390"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a empty recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.001352"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a empty recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.001229"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations without permissions raises a permissions not authorized exception" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.234331"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #remove removes the provided device id string" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.579010"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #get returns a DeviceDetails object if a device ID string is provided" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.492499"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #get with a failed request raises a ResourceMissing exception if device ID does not exist" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.505909"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #remove_where removes all matching device registrations by client_id" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.478429"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.507287"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list raises an exception if params are invalid" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.476951"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list supports paging" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.777210"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #save saves the new DeviceDetails Hash object" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.503941"></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #save with a failed request fails if data is invalid" file="./spec/acceptance/realtime/push_admin_spec.rb" time="0.122433"></testcase>
<testcase classname="spec.acceptance.realtime.stats_spec" name="Ably::Realtime::Client#stats using JSON protocol fetching stats returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/stats_spec.rb" time="0.154881"></testcase>
<testcase classname="spec.acceptance.realtime.stats_spec" name="Ably::Realtime::Client#stats using JSON protocol fetching stats returns a PaginatedResult" file="./spec/acceptance/realtime/stats_spec.rb" time="0.245156"></testcase>
<testcase classname="spec.acceptance.realtime.stats_spec" name="Ably::Realtime::Client#stats using JSON protocol fetching stats with options passes the option arguments to the REST stat method" file="./spec/acceptance/realtime/stats_spec.rb" time="0.154813"></testcase>
</testsuite>
