<testsuites name="Mocha Tests" time="307.777" tests="343" failures="0" skipped="2">
  <testsuite name="Root Suite" timestamp="2025-11-11T09:06:32" tests="0" time="0.000" failures="0">
  </testsuite>
  <testsuite name="realtime/objects" timestamp="2025-11-11T09:06:32" tests="1" time="0.000" failures="0">
    <testcase name="realtime/objects can attach to channel with object modes" time="0.329" classname="can attach to channel with object modes">
    </testcase>
  </testsuite>
  <testsuite name="Realtime without Objects plugin" timestamp="2025-11-11T09:06:38" tests="3" time="0.509" 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.262" 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.239" classname="doesn&apos;t break when it receives an OBJECT_SYNC ProtocolMessage">
    </testcase>
  </testsuite>
  <testsuite name="Realtime with Objects plugin" timestamp="2025-11-11T09:06:38" 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.001" 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.108" 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.103" 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.115" 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.106" 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.107" 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.833" 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.735" 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.820" 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.424" 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.782" 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.814" 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.377" 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.506" 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.348" 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.886" 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.442" 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.862" 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="0.860" 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.734" 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.781" 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.375" 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.796" 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.341" 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.355" 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.210" 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.795" 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.237" 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.789" 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.800" 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.785" 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.209" 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.810" 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.421" 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.884" 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.780" 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.859" 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.280" 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.863" 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.801" 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.776" 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.265" 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.281" 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.300" 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.778" 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.323" 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.711" 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.328" 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.449" 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.543" 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.799" 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.298" 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.316" 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.456" 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.899" 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.901" 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="0.500" 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.491" 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.970" 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.527" 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.192" 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.413" 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.260" 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.800" 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.248" 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.387" 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.842" 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.961" 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.595" 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.865" 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.865" 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.510" 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.903" 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.715" 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.849" 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.469" 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.428" 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.868" 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.904" 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.336" 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.727" 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.759" 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.725" 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.885" 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.821" 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.813" 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.858" 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.384" 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.245" 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.723" 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="1.407" 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.447" 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.467" 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="1.042" 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.888" 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.000" 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.661" 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.493" 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.267" 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.726" 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.856" 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.234" 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.799" 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.814" 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.554" 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.660" 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.715" 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.723" 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.711" 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.318" 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.311" 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.829" 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.469" 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.459" 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.766" 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.246" 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.804" 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.430" 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.325" 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.349" 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.814" 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.780" 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.890" 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.252" 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="0.677" 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.678" 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="0.871" 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="0.752" 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="1.194" 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="1.230" 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.710" 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="1.260" 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.327" 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.381" 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="1.221" 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="1.269" 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.236" 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.293" 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.800" 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="0.938" 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.360" 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="1.317" 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.274" 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.827" classname="LiveMap.remove throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.create() returns value type object" time="0.272" 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.333" 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.717" 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.834" 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.789" 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.390" 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.765" 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.279" 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.223" 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="1.278" 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="0.748" 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.826" 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.842" 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.707" 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.272" 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.752" 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.768" 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.263" 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.833" 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.796" 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.188" 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.740" 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.273" 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="1.336" 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.315" 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="0.715" 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="0.344" 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.794" 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.728" 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.403" 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.314" 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.204" 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.714" 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.142" 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.344" 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.692" 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.791" 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.787" 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.779" 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.818" 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.381" 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.745" 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.359" 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.659" 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.277" 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.665" 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.710" 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.717" classname="RealtimeObject.get() returns PathObject instance">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.get() returns child PathObject instances" time="0.662" classname="PathObject.get() returns child PathObject instances">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.path() returns correct path strings" time="0.202" 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.245" classname="PathObject.at() navigates using dot-separated paths">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject resolves complex path strings" time="0.353" classname="PathObject resolves complex path strings">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.value() returns primitive values correctly" time="1.187" classname="PathObject.value() returns primitive values correctly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin PathObject.value() returns LiveCounter values" time="0.720" 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.829" 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.163" 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="0.892" 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.193" 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.651" 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.771" 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.317" 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.275" 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.156" 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.774" 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.340" 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.343" 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.352" 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.226" 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.379" 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="0.838" 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.201" 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.764" 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.162" 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.703" 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="1.214" 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.169" 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.155" 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.684" 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.270" 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="1.211" 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.217" 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.181" 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="1.176" 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.795" 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.195" 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.326" 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.713" 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.151" 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.323" 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.219" classname="DefaultInstance.get() returns child DefaultInstance instances">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.value() returns primitive values correctly" time="1.218" classname="DefaultInstance.value() returns primitive values correctly">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance.value() returns LiveCounter values" time="0.722" classname="DefaultInstance.value() returns LiveCounter values">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin DefaultInstance collection methods work for LiveMap objects" time="1.848" 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.694" 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.327" 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="0.786" 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.347" 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.219" 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.328" 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.721" 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.797" 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.145" 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.170" 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.658" 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.149" 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.146" 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.331" 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.351" 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.293" 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="1.184" 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="1.178" 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.339" 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.211" 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.328" 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.338" 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.157" 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="0.506" 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="1.006" 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.396" 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.978" 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.542" 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.525" 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="1.016" 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.616" 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.552" 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.520" 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="0.554" 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="1.057" 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.363" 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.907" 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.933" 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.565" 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.450" 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.376" 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.361" 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.955" 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.398" 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.920" 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.885" 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.929" 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.742" 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="0.724" 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="1.177" 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.657" 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="0.689" 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="1.130" 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.918" 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="0.475" 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.997" 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.045" 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.046" 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.558" 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.510" 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.502" 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.002" 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.509" 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.011" 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="1.259" 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.827" 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="0.831" 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="1.270" 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.695" 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="1.215" 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.747" classname="object message publish respects connectionDetails.maxMessageSize">
    </testcase>
  </testsuite>
  <testsuite name="ObjectMessage message size" timestamp="2025-11-11T09:11:34" tests="28" time="6.134" 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.001" classname="object id">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size nonce" time="0.000" 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.000" 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.000" 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.002" 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.001" 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.002" 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.002" 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.000" classname="map remove op">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=objectId" time="0.001" 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.000" 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.000" classname="map object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter create op no payload" time="0.001" 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.001" 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>