<testsuites name="Mocha Tests" time="299.940" tests="343" failures="0" skipped="2">
  <testsuite name="Root Suite" timestamp="2025-11-11T09:24:58" tests="0" time="0.000" failures="0">
  </testsuite>
  <testsuite name="realtime/objects" timestamp="2025-11-11T09:24:58" tests="1" time="0.000" failures="0">
    <testcase name="realtime/objects can attach to channel with object modes" time="0.107" classname="can attach to channel with object modes">
    </testcase>
  </testsuite>
  <testsuite name="Realtime without Objects plugin" timestamp="2025-11-11T09:25:05" tests="3" time="0.224" failures="0">
    <testcase name="realtime/objects Realtime without Objects plugin throws an error when attempting to access the channel&apos;s `object` property" time="0.001" classname="throws an error when attempting to access the channel&apos;s `object` property">
    </testcase>
    <testcase name="realtime/objects Realtime without Objects plugin doesn&apos;t break when it receives an OBJECT ProtocolMessage" time="0.104" classname="doesn&apos;t break when it receives an OBJECT ProtocolMessage">
    </testcase>
    <testcase name="realtime/objects Realtime without Objects plugin doesn&apos;t break when it receives an OBJECT_SYNC ProtocolMessage" time="0.098" classname="doesn&apos;t break when it receives an OBJECT_SYNC ProtocolMessage">
    </testcase>
  </testsuite>
  <testsuite name="Realtime with Objects plugin" timestamp="2025-11-11T09:25:05" tests="311" time="0.000" failures="0">
    <testcase name="realtime/objects Realtime with Objects plugin returns RealtimeObject class instance when accessing channel&apos;s `object` property" time="0.002" classname="returns RealtimeObject class instance when accessing channel&apos;s `object` property">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() returns LiveObject with id &quot;root&quot;" time="0.094" classname="RealtimeObject.get() returns LiveObject with id &quot;root&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() returns empty root when no objects exist on a channel" time="0.091" classname="RealtimeObject.get() returns empty root when no objects exist on a channel">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() waits for initial OBJECT_SYNC to be completed before resolving" time="0.080" classname="RealtimeObject.get() waits for initial OBJECT_SYNC to be completed before resolving">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() resolves immediately when OBJECT_SYNC sequence is completed" time="0.094" classname="RealtimeObject.get() resolves immediately when OBJECT_SYNC sequence is completed">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() waits for OBJECT_SYNC with empty cursor before resolving" time="0.067" classname="RealtimeObject.get() waits for OBJECT_SYNC with empty cursor before resolving">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with web_socket binary protocol" time="0.785" classname="OBJECT_SYNC sequence builds object tree on channel attachment with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with web_socket text protocol" time="0.140" classname="OBJECT_SYNC sequence builds object tree on channel attachment with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with xhr_polling binary protocol" time="0.332" classname="OBJECT_SYNC sequence builds object tree on channel attachment with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with xhr_polling text protocol" time="0.765" classname="OBJECT_SYNC sequence builds object tree on channel attachment with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with binary protocol" time="0.277" classname="OBJECT_SYNC sequence builds object tree on channel attachment with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree on channel attachment with text protocol" time="0.839" classname="OBJECT_SYNC sequence builds object tree on channel attachment with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with web_socket binary protocol" time="1.295" classname="OBJECT_SYNC sequence builds object tree with all operations applied with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with web_socket text protocol" time="1.436" classname="OBJECT_SYNC sequence builds object tree with all operations applied with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with xhr_polling binary protocol" time="1.921" classname="OBJECT_SYNC sequence builds object tree with all operations applied with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with xhr_polling text protocol" time="1.328" classname="OBJECT_SYNC sequence builds object tree with all operations applied with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with binary protocol" time="1.434" classname="OBJECT_SYNC sequence builds object tree with all operations applied with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence builds object tree with all operations applied with text protocol" time="0.891" classname="OBJECT_SYNC sequence builds object tree with all operations applied with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence does not change references to existing objects" time="1.269" classname="OBJECT_SYNC sequence does not change references to existing objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol" time="0.707" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol" time="0.742" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol" time="0.381" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol" time="0.355" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with binary protocol" time="0.669" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with text protocol" time="0.275" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol" time="0.277" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol" time="0.294" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol" time="0.350" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol" time="0.324" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with binary protocol" time="0.295" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with text protocol" time="0.160" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object creates tombstoned object" time="0.681" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object creates tombstoned object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with web_socket binary protocol" time="0.857" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with web_socket text protocol" time="0.788" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with xhr_polling binary protocol" time="0.442" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with xhr_polling text protocol" time="0.333" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with binary protocol" time="0.388" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with text protocol" time="0.783" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object deletes existing object with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with web_socket binary protocol" time="0.372" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with web_socket text protocol" time="0.865" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with xhr_polling binary protocol" time="0.295" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with xhr_polling text protocol" time="0.362" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with binary protocol" time="0.235" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with text protocol" time="0.822" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object triggers subscription callback for existing object with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;" time="0.266" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;" time="0.717" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for an object sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for a map entry sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;" time="0.692" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for a map entry sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with &quot;tombstone=true&quot; for a map entry sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;" time="0.664" classname="OBJECT_SYNC sequence with &quot;tombstone=true&quot; for a map entry sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with web_socket binary protocol" time="0.852" classname="can apply MAP_CREATE with primitives object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with web_socket text protocol" time="0.223" classname="can apply MAP_CREATE with primitives object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with xhr_polling binary protocol" time="0.440" classname="can apply MAP_CREATE with primitives object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with xhr_polling text protocol" time="0.414" classname="can apply MAP_CREATE with primitives object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with binary protocol" time="0.264" classname="can apply MAP_CREATE with primitives object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with text protocol" time="0.763" classname="can apply MAP_CREATE with primitives object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with web_socket binary protocol" time="0.466" classname="can apply MAP_CREATE with object ids object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with web_socket text protocol" time="0.450" classname="can apply MAP_CREATE with object ids object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with xhr_polling binary protocol" time="1.089" classname="can apply MAP_CREATE with object ids object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with xhr_polling text protocol" time="0.455" classname="can apply MAP_CREATE with object ids object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with binary protocol" time="0.461" classname="can apply MAP_CREATE with object ids object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with text protocol" time="0.356" classname="can apply MAP_CREATE with object ids object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_CREATE object operation messages are applied based on the site timeserials vector of the object" time="0.672" classname="MAP_CREATE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with web_socket binary protocol" time="0.823" classname="can apply MAP_SET with primitives object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with web_socket text protocol" time="0.908" classname="can apply MAP_SET with primitives object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with xhr_polling binary protocol" time="0.902" classname="can apply MAP_SET with primitives object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with xhr_polling text protocol" time="0.889" classname="can apply MAP_SET with primitives object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with binary protocol" time="0.431" classname="can apply MAP_SET with primitives object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with text protocol" time="0.880" classname="can apply MAP_SET with primitives object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with web_socket binary protocol" time="0.350" classname="can apply MAP_SET with object ids object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with web_socket text protocol" time="0.883" classname="can apply MAP_SET with object ids object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with xhr_polling binary protocol" time="0.344" classname="can apply MAP_SET with object ids object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with xhr_polling text protocol" time="0.448" classname="can apply MAP_SET with object ids object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with binary protocol" time="0.491" classname="can apply MAP_SET with object ids object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with text protocol" time="0.911" classname="can apply MAP_SET with object ids object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_SET object operation messages are applied based on the site timeserials vector of the object" time="0.710" classname="MAP_SET object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with web_socket binary protocol" time="0.364" classname="can apply MAP_REMOVE object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with web_socket text protocol" time="0.448" classname="can apply MAP_REMOVE object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with xhr_polling binary protocol" time="0.813" classname="can apply MAP_REMOVE object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with xhr_polling text protocol" time="0.817" classname="can apply MAP_REMOVE object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with binary protocol" time="0.825" classname="can apply MAP_REMOVE object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with text protocol" time="0.289" classname="can apply MAP_REMOVE object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_REMOVE object operation messages are applied based on the site timeserials vector of the object" time="0.267" classname="MAP_REMOVE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_REMOVE for a map entry sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;" time="0.658" classname="MAP_REMOVE for a map entry sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_REMOVE for a map entry sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;" time="0.676" classname="MAP_REMOVE for a map entry sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with web_socket binary protocol" time="0.521" classname="can apply COUNTER_CREATE object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with web_socket text protocol" time="0.865" classname="can apply COUNTER_CREATE object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with xhr_polling binary protocol" time="0.936" classname="can apply COUNTER_CREATE object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with xhr_polling text protocol" time="0.507" classname="can apply COUNTER_CREATE object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with binary protocol" time="0.499" classname="can apply COUNTER_CREATE object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with text protocol" time="0.962" classname="can apply COUNTER_CREATE object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin COUNTER_CREATE object operation messages are applied based on the site timeserials vector of the object" time="0.155" classname="COUNTER_CREATE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with web_socket binary protocol" time="0.904" classname="can apply COUNTER_INC object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with web_socket text protocol" time="1.350" classname="can apply COUNTER_INC object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with xhr_polling binary protocol" time="1.031" classname="can apply COUNTER_INC object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with xhr_polling text protocol" time="0.983" classname="can apply COUNTER_INC object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with binary protocol" time="0.788" classname="can apply COUNTER_INC object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with text protocol" time="1.258" classname="can apply COUNTER_INC object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin COUNTER_INC object operation messages are applied based on the site timeserials vector of the object" time="0.278" classname="COUNTER_INC object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply OBJECT_DELETE object operation messages" time="0.432" classname="can apply OBJECT_DELETE object operation messages">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE for unknown object id creates zero-value tombstoned object" time="0.658" classname="OBJECT_DELETE for unknown object id creates zero-value tombstoned object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE object operation messages are applied based on the site timeserials vector of the object" time="0.705" classname="OBJECT_DELETE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE triggers subscription callback with deleted data" time="0.422" classname="OBJECT_DELETE triggers subscription callback with deleted data">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE for an object sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;" time="0.366" classname="OBJECT_DELETE for an object sets &quot;tombstoneAt&quot; from &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE for an object sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;" time="0.771" classname="OBJECT_DELETE for an object sets &quot;tombstoneAt&quot; using local clock if missing &quot;serialTimestamp&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_SET with reference to a tombstoned object results in undefined value on key" time="0.222" classname="MAP_SET with reference to a tombstoned object results in undefined value on key">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object operation message on a tombstoned object does not revive it" time="0.505" classname="object operation message on a tombstoned object does not revive it">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object operation messages are buffered during OBJECT_SYNC sequence" time="0.270" classname="object operation messages are buffered during OBJECT_SYNC sequence">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are applied when OBJECT_SYNC sequence ends" time="0.301" classname="buffered object operation messages are applied when OBJECT_SYNC sequence ends">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are discarded when new OBJECT_SYNC sequence starts" time="0.142" classname="buffered object operation messages are discarded when new OBJECT_SYNC sequence starts">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are applied based on the site timeserials vector of the object" time="0.269" classname="buffered object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin subsequent object operation messages are applied immediately after OBJECT_SYNC ended and buffers are applied" time="0.711" classname="subsequent object operation messages are applied immediately after OBJECT_SYNC ended and buffers are applied">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with web_socket binary protocol" time="4.371" classname="LiveCounter.increment sends COUNTER_INC operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with web_socket text protocol" time="4.774" classname="LiveCounter.increment sends COUNTER_INC operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with xhr_polling binary protocol" time="4.793" classname="LiveCounter.increment sends COUNTER_INC operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with xhr_polling text protocol" time="4.443" classname="LiveCounter.increment sends COUNTER_INC operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with binary protocol" time="4.942" classname="LiveCounter.increment sends COUNTER_INC operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with text protocol" time="4.367" classname="LiveCounter.increment sends COUNTER_INC operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment throws on invalid input" time="0.797" classname="LiveCounter.increment throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with web_socket binary protocol" time="4.842" classname="LiveCounter.decrement sends COUNTER_INC operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with web_socket text protocol" time="4.215" classname="LiveCounter.decrement sends COUNTER_INC operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with xhr_polling binary protocol" time="4.851" classname="LiveCounter.decrement sends COUNTER_INC operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with xhr_polling text protocol" time="4.272" classname="LiveCounter.decrement sends COUNTER_INC operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with binary protocol" time="4.228" classname="LiveCounter.decrement sends COUNTER_INC operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with text protocol" time="4.769" classname="LiveCounter.decrement sends COUNTER_INC operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement throws on invalid input" time="0.232" classname="LiveCounter.decrement throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with web_socket binary protocol" time="1.214" classname="LiveMap.set sends MAP_SET operation with primitive values with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with web_socket text protocol" time="0.648" classname="LiveMap.set sends MAP_SET operation with primitive values with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with xhr_polling binary protocol" time="1.238" classname="LiveMap.set sends MAP_SET operation with primitive values with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with xhr_polling text protocol" time="1.232" classname="LiveMap.set sends MAP_SET operation with primitive values with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with binary protocol" time="0.671" classname="LiveMap.set sends MAP_SET operation with primitive values with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with text protocol" time="0.861" classname="LiveMap.set sends MAP_SET operation with primitive values with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket binary protocol" time="0.971" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket text protocol" time="0.666" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling binary protocol" time="1.267" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling text protocol" time="1.324" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with binary protocol" time="0.797" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with text protocol" time="0.994" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set throws on invalid input" time="0.389" classname="LiveMap.set throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with web_socket binary protocol" time="1.281" classname="LiveMap.remove sends MAP_REMOVE operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with web_socket text protocol" time="0.852" classname="LiveMap.remove sends MAP_REMOVE operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with xhr_polling binary protocol" time="1.326" classname="LiveMap.remove sends MAP_REMOVE operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with xhr_polling text protocol" time="1.291" classname="LiveMap.remove sends MAP_REMOVE operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with binary protocol" time="0.926" classname="LiveMap.remove sends MAP_REMOVE operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with text protocol" time="1.277" classname="LiveMap.remove sends MAP_REMOVE operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove throws on invalid input" time="0.198" classname="LiveMap.remove throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() returns value type object" time="0.673" classname="LiveCounter.create() returns value type object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with web_socket binary protocol" time="0.182" classname="value type created with LiveCounter.create() can be assigned to the object tree with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with web_socket text protocol" time="0.727" classname="value type created with LiveCounter.create() can be assigned to the object tree with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with xhr_polling binary protocol" time="0.378" classname="value type created with LiveCounter.create() can be assigned to the object tree with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with xhr_polling text protocol" time="0.216" classname="value type created with LiveCounter.create() can be assigned to the object tree with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with binary protocol" time="0.773" classname="value type created with LiveCounter.create() can be assigned to the object tree with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() can be assigned to the object tree with text protocol" time="0.160" classname="value type created with LiveCounter.create() can be assigned to the object tree with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with web_socket binary protocol" time="1.264" classname="LiveCounter.create() sends COUNTER_CREATE operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with web_socket text protocol" time="1.184" classname="LiveCounter.create() sends COUNTER_CREATE operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with xhr_polling binary protocol" time="0.708" classname="LiveCounter.create() sends COUNTER_CREATE operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with xhr_polling text protocol" time="1.224" classname="LiveCounter.create() sends COUNTER_CREATE operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with binary protocol" time="0.902" classname="LiveCounter.create() sends COUNTER_CREATE operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() sends COUNTER_CREATE operation with text protocol" time="0.796" classname="LiveCounter.create() sends COUNTER_CREATE operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveCounter.create() with an invalid input throws when assigned to the object tree" time="0.132" classname="value type created with LiveCounter.create() with an invalid input throws when assigned to the object tree">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() returns value type object" time="0.260" classname="LiveMap.create() returns value type object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with web_socket binary protocol" time="0.761" classname="value type created with LiveMap.create() can be assigned to the object tree with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with web_socket text protocol" time="0.157" classname="value type created with LiveMap.create() can be assigned to the object tree with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with xhr_polling binary protocol" time="0.345" classname="value type created with LiveMap.create() can be assigned to the object tree with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with xhr_polling text protocol" time="0.208" classname="value type created with LiveMap.create() can be assigned to the object tree with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with binary protocol" time="0.757" classname="value type created with LiveMap.create() can be assigned to the object tree with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() can be assigned to the object tree with text protocol" time="0.739" classname="value type created with LiveMap.create() can be assigned to the object tree with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with web_socket binary protocol" time="0.797" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with web_socket text protocol" time="1.307" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with xhr_polling binary protocol" time="0.857" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with xhr_polling text protocol" time="1.220" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with binary protocol" time="1.232" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with primitive values with text protocol" time="1.187" classname="LiveMap.create() sends MAP_CREATE operation with primitive values with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with web_socket binary protocol" time="0.729" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with web_socket text protocol" time="0.232" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with xhr_polling binary protocol" time="0.969" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with xhr_polling text protocol" time="0.760" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with binary protocol" time="0.739" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with text protocol" time="0.300" classname="LiveMap.create() sends MAP_CREATE operation with reference to another LiveObject with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin value type created with LiveMap.create() with an invalid input throws when assigned to the object tree" time="0.269" classname="value type created with LiveMap.create() with an invalid input throws when assigned to the object tree">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext.get() returns child DefaultBatchContext instances" time="1.739" classname="DefaultBatchContext.get() returns child DefaultBatchContext instances">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext access API methods on objects work and are synchronous" time="0.660" classname="DefaultBatchContext access API methods on objects work and are synchronous">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext write API methods on objects do not mutate objects inside the batch function" time="1.949" classname="DefaultBatchContext write API methods on objects do not mutate objects inside the batch function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with web_socket binary protocol" time="1.191" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with web_socket text protocol" time="1.723" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with xhr_polling binary protocol" time="1.779" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with xhr_polling text protocol" time="1.339" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with binary protocol" time="1.216" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations are applied when batch function finishes with text protocol" time="1.727" classname="DefaultBatchContext scheduled mutation operations are applied when batch function finishes with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.batch()/DefaultInstance.batch() can be called without scheduling any mutation operations" time="0.308" classname="PathObject.batch()/DefaultInstance.batch() can be called without scheduling any mutation operations">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext scheduled mutation operations can be canceled by throwing an error in the batch function" time="1.259" classname="DefaultBatchContext scheduled mutation operations can be canceled by throwing an error in the batch function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext can&apos;t be interacted with after batch function finishes" time="0.296" classname="DefaultBatchContext can&apos;t be interacted with after batch function finishes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultBatchContext can&apos;t be interacted with after error was thrown from batch function" time="0.285" classname="DefaultBatchContext can&apos;t be interacted with after error was thrown from batch function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin RealtimeObject.get() returns PathObject instance" time="0.151" classname="RealtimeObject.get() returns PathObject instance">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.get() returns child PathObject instances" time="0.703" classname="PathObject.get() returns child PathObject instances">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.path() returns correct path strings" time="0.209" classname="PathObject.path() returns correct path strings">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.at() navigates using dot-separated paths" time="0.679" classname="PathObject.at() navigates using dot-separated paths">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject resolves complex path strings" time="0.687" classname="PathObject resolves complex path strings">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.value() returns primitive values correctly" time="1.214" classname="PathObject.value() returns primitive values correctly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.value() returns LiveCounter values" time="0.296" classname="PathObject.value() returns LiveCounter values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.instance() returns DefaultInstance for LiveMap and LiveCounter" time="0.716" classname="PathObject.instance() returns DefaultInstance for LiveMap and LiveCounter">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject collection methods work for LiveMap objects" time="1.686" classname="PathObject collection methods work for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.set() works for LiveMap objects with primitive values" time="1.204" classname="PathObject.set() works for LiveMap objects with primitive values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.set() works for LiveMap objects with LiveObject references" time="0.292" classname="PathObject.set() works for LiveMap objects with LiveObject references">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.remove() works for LiveMap objects" time="0.776" classname="PathObject.remove() works for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.increment() and PathObject.decrement() work for LiveCounter objects" time="2.170" classname="PathObject.increment() and PathObject.decrement() work for LiveCounter objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.get() throws error for non-string keys" time="0.660" classname="PathObject.get() throws error for non-string keys">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.at() throws error for non-string paths" time="0.280" classname="PathObject.at() throws error for non-string paths">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject handling of operations on non-existent paths" time="0.299" classname="PathObject handling of operations on non-existent paths">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject handling of operations for paths with non-collection intermediate segments" time="0.289" classname="PathObject handling of operations for paths with non-collection intermediate segments">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject handling of operations on wrong underlying object type" time="1.169" classname="PathObject handling of operations on wrong underlying object type">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() receives events for direct changes to the subscribed path" time="0.706" classname="PathObject.subscribe() receives events for direct changes to the subscribed path">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() receives events for nested changes with unlimited depth by default" time="1.782" classname="PathObject.subscribe() receives events for nested changes with unlimited depth by default">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() with depth parameter receives expected events" time="2.251" classname="PathObject.subscribe() with depth parameter receives expected events">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() on nested path receives events for that path and its children" time="2.768" classname="PathObject.subscribe() on nested path receives events for that path and its children">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() works with complex nested paths and escaped dots" time="1.179" classname="PathObject.subscribe() works with complex nested paths and escaped dots">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() on LiveMap path receives set/remove events" time="1.730" classname="PathObject.subscribe() on LiveMap path receives set/remove events">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() on LiveCounter path receives increment/decrement events" time="1.331" classname="PathObject.subscribe() on LiveCounter path receives increment/decrement events">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() on Primitive path receives changes to the primitive value" time="2.821" classname="PathObject.subscribe() on Primitive path receives changes to the primitive value">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() returns &quot;unsubscribe&quot; function" time="0.878" classname="PathObject.subscribe() returns &quot;unsubscribe&quot; function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from PathObject.subscribe() updates using returned &quot;unsubscribe&quot; function" time="0.809" classname="can unsubscribe from PathObject.subscribe() updates using returned &quot;unsubscribe&quot; function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() handles multiple subscriptions independently" time="1.179" classname="PathObject.subscribe() handles multiple subscriptions independently">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() event object provides correct PathObject instance" time="0.803" classname="PathObject.subscribe() event object provides correct PathObject instance">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() handles subscription listener errors gracefully" time="0.139" classname="PathObject.subscribe() handles subscription listener errors gracefully">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribe() throws error for invalid options" time="0.259" classname="PathObject.subscribe() throws error for invalid options">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribeIterator() yields events for changes to the subscribed path" time="0.641" classname="PathObject.subscribeIterator() yields events for changes to the subscribed path">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribeIterator() with depth option works correctly" time="2.249" classname="PathObject.subscribeIterator() with depth option works correctly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribeIterator() can be broken out of and subscription is removed properly" time="1.705" classname="PathObject.subscribeIterator() can be broken out of and subscription is removed properly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.subscribeIterator() handles multiple concurrent iterators independently" time="0.670" classname="PathObject.subscribeIterator() handles multiple concurrent iterators independently">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.compact() returns correct representation for primitive values" time="0.784" classname="PathObject.compact() returns correct representation for primitive values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.compact() returns number for LiveCounter objects" time="0.874" classname="PathObject.compact() returns number for LiveCounter objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.compact() returns plain object for LiveMap objects" time="0.308" classname="PathObject.compact() returns plain object for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.compact() handles complex nested structures" time="0.432" classname="PathObject.compact() handles complex nested structures">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.batch() passes RootBatchContext to its batch function" time="0.700" classname="PathObject.batch() passes RootBatchContext to its batch function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.id() returns object ID of the underlying LiveObject" time="0.268" classname="DefaultInstance.id() returns object ID of the underlying LiveObject">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.get() returns child DefaultInstance instances" time="1.223" classname="DefaultInstance.get() returns child DefaultInstance instances">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.value() returns primitive values correctly" time="1.249" classname="DefaultInstance.value() returns primitive values correctly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.value() returns LiveCounter values" time="0.176" classname="DefaultInstance.value() returns LiveCounter values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance collection methods work for LiveMap objects" time="1.715" classname="DefaultInstance collection methods work for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.set() works for LiveMap objects with primitive values" time="0.678" classname="DefaultInstance.set() works for LiveMap objects with primitive values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.set() works for LiveMap objects with LiveObject references" time="0.183" classname="DefaultInstance.set() works for LiveMap objects with LiveObject references">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.remove() works for LiveMap objects" time="1.218" classname="DefaultInstance.remove() works for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.increment() and DefaultInstance.decrement() work for LiveCounter objects" time="2.689" classname="DefaultInstance.increment() and DefaultInstance.decrement() work for LiveCounter objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.get() throws error for non-string keys" time="0.352" classname="DefaultInstance.get() throws error for non-string keys">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance handling of operations on wrong underlying object type" time="1.164" classname="DefaultInstance handling of operations on wrong underlying object type">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() receives events for LiveMap set/remove operations" time="1.693" classname="DefaultInstance.subscribe() receives events for LiveMap set/remove operations">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() receives events for LiveCounter increment/decrement" time="1.166" classname="DefaultInstance.subscribe() receives events for LiveCounter increment/decrement">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() returns &quot;unsubscribe&quot; function" time="0.205" classname="DefaultInstance.subscribe() returns &quot;unsubscribe&quot; function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from DefaultInstance.subscribe() updates using returned &quot;unsubscribe&quot; function" time="1.217" classname="can unsubscribe from DefaultInstance.subscribe() updates using returned &quot;unsubscribe&quot; function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() handles multiple subscriptions independently" time="0.779" classname="DefaultInstance.subscribe() handles multiple subscriptions independently">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() event object provides correct DefaultInstance reference" time="0.670" classname="DefaultInstance.subscribe() event object provides correct DefaultInstance reference">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribe() handles subscription listener errors gracefully" time="0.159" classname="DefaultInstance.subscribe() handles subscription listener errors gracefully">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribeIterator() yields events for LiveMap set/remove operations" time="1.294" classname="DefaultInstance.subscribeIterator() yields events for LiveMap set/remove operations">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribeIterator() yields events for LiveCounter increment/decrement" time="1.755" classname="DefaultInstance.subscribeIterator() yields events for LiveCounter increment/decrement">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribeIterator() can be broken out of and subscription is removed properly" time="1.705" classname="DefaultInstance.subscribeIterator() can be broken out of and subscription is removed properly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.subscribeIterator() handles multiple concurrent iterators independently" time="0.783" classname="DefaultInstance.subscribeIterator() handles multiple concurrent iterators independently">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.compact() returns correct representation for primitive values" time="0.775" classname="DefaultInstance.compact() returns correct representation for primitive values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.compact() returns number for LiveCounter objects" time="0.726" classname="DefaultInstance.compact() returns number for LiveCounter objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.compact() returns plain object for LiveMap objects" time="0.701" classname="DefaultInstance.compact() returns plain object for LiveMap objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.compact() handles complex nested structures" time="0.304" classname="DefaultInstance.compact() handles complex nested structures">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.compact() and PathObject.compact() return equivalent results" time="0.721" classname="DefaultInstance.compact() and PathObject.compact() return equivalent results">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.batch() passes RootBatchContext to its batch function" time="0.702" classname="DefaultInstance.batch() passes RootBatchContext to its batch function">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket binary protocol" time="1.186" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket text protocol" time="0.969" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling binary protocol" time="0.968" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling text protocol" time="0.885" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with binary protocol" time="0.928" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with text protocol" time="0.917" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with web_socket binary protocol" time="0.659" classname="can subscribe to multiple incoming operations on a LiveCounter with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with web_socket text protocol" time="0.654" classname="can subscribe to multiple incoming operations on a LiveCounter with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with xhr_polling binary protocol" time="0.572" classname="can subscribe to multiple incoming operations on a LiveCounter with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with xhr_polling text protocol" time="0.642" classname="can subscribe to multiple incoming operations on a LiveCounter with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with binary protocol" time="1.010" classname="can subscribe to multiple incoming operations on a LiveCounter with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with text protocol" time="0.435" classname="can subscribe to multiple incoming operations on a LiveCounter with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket binary protocol" time="0.900" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket text protocol" time="0.861" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling binary protocol" time="0.359" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling text protocol" time="0.890" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with binary protocol" time="0.347" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with text protocol" time="0.312" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket binary protocol" time="0.304" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket text protocol" time="0.871" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling binary protocol" time="0.565" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling text protocol" time="0.352" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with binary protocol" time="0.852" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with text protocol" time="0.319" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with web_socket binary protocol" time="0.604" classname="can subscribe to multiple incoming operations on a LiveMap with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with web_socket text protocol" time="1.075" classname="can subscribe to multiple incoming operations on a LiveMap with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with xhr_polling binary protocol" time="0.494" classname="can subscribe to multiple incoming operations on a LiveMap with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with xhr_polling text protocol" time="0.687" classname="can subscribe to multiple incoming operations on a LiveMap with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with binary protocol" time="1.052" classname="can subscribe to multiple incoming operations on a LiveMap with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with text protocol" time="0.714" classname="can subscribe to multiple incoming operations on a LiveMap with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin subscription event message contains the metadata of the update" time="1.916" classname="subscription event message contains the metadata of the update">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveCounter updates via returned &quot;unsubscribe&quot; callback" time="1.032" classname="can unsubscribe from LiveCounter updates via returned &quot;unsubscribe&quot; callback">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveMap updates via returned &quot;unsubscribe&quot; callback" time="0.984" classname="can unsubscribe from LiveMap updates via returned &quot;unsubscribe&quot; callback">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin gcGracePeriod is set from connectionDetails.objectsGCGracePeriod" time="0.044" classname="gcGracePeriod is set from connectionDetails.objectsGCGracePeriod">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin gcGracePeriod has a default value if connectionDetails.objectsGCGracePeriod is missing" time="0.039" classname="gcGracePeriod has a default value if connectionDetails.objectsGCGracePeriod is missing">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned object is removed from the pool after the GC grace period" time="1.509" classname="tombstoned object is removed from the pool after the GC grace period">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket binary protocol" time="1.509" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket text protocol" time="1.509" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling binary protocol" time="1.003" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling text protocol" time="1.004" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with binary protocol" time="1.507" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with text protocol" time="1.507" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws missing object modes error when attached without correct modes" time="0.688" classname="public API throws missing object modes error when attached without correct modes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws missing object modes error when not yet attached but client options are missing correct modes" time="0.809" classname="public API throws missing object modes error when not yet attached but client options are missing correct modes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws invalid channel state error when channel DETACHED" time="1.196" classname="public API throws invalid channel state error when channel DETACHED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws invalid channel state error when channel FAILED" time="0.807" classname="public API throws invalid channel state error when channel FAILED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public write API throws invalid channel state error when channel SUSPENDED" time="0.801" classname="public write API throws invalid channel state error when channel SUSPENDED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public write API throws invalid channel option when &quot;echoMessages&quot; is disabled" time="0.657" classname="public write API throws invalid channel option when &quot;echoMessages&quot; is disabled">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object message publish respects connectionDetails.maxMessageSize" time="0.137" classname="object message publish respects connectionDetails.maxMessageSize">
    </testcase>
  </testsuite>
  <testsuite name="ObjectMessage message size" timestamp="2025-11-11T09:29:52" tests="28" time="6.465" failures="0">
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size client id" time="0.001" classname="client id">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size extras" time="0.001" classname="extras">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size object id" time="0.000" classname="object id">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size nonce" time="0.001" classname="nonce">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size initial value" time="0.001" classname="initial value">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op no payload" time="0.000" classname="map create op no payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with object id payload" time="0.001" classname="map create op with object id payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with string payload" time="0.001" classname="map create op with string payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with bytes payload" time="0.001" classname="map create op with bytes payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with boolean payload" time="0.000" classname="map create op with boolean payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with double payload" time="0.000" classname="map create op with double payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with object payload" time="0.001" classname="map create op with object payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with array payload" time="0.001" classname="map create op with array payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map remove op" time="0.001" classname="map remove op">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=objectId" time="0.000" classname="map set operation value=objectId">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=string" time="0.001" classname="map set operation value=string">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=bytes" time="0.001" classname="map set operation value=bytes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=boolean true" time="0.001" classname="map set operation value=boolean true">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=boolean false" time="0.000" classname="map set operation value=boolean false">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=double" time="0.000" classname="map set operation value=double">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=double 0" time="0.001" classname="map set operation value=double 0">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=json-object" time="0.001" classname="map set operation value=json-object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=json-array" time="0.000" classname="map set operation value=json-array">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map object" time="0.001" classname="map object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter create op no payload" time="0.000" classname="counter create op no payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter create op with payload" time="0.000" classname="counter create op with payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter inc op" time="0.000" classname="counter inc op">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter object" time="0.001" classname="counter object">
    </testcase>
  </testsuite>
</testsuites>