Skip to content

[FEATURE] Headless browsers interoperability tests with Socketio client js v1-v4 (Engine IO v3&v4) #231

Description

@sanjomo

Summary

Add a comprehensive browser interoperability test suite using Playwright to validate Socket.IO client compatibility across multiple browser engines and Socket.IO client versions.

Motivation

While Node.js interoperability tests verify protocol compatibility, browser environments exercise real browser networking stacks, WebSocket implementations, polling transports, and JavaScript runtime behavior.

This provides confidence that SocketIO4j interoperates correctly with browsers using historical and current Socket.IO client releases.

Coverage

Browsers

  • Chromium
  • Firefox
  • WebKit

Socket.IO Client Versions

  • v1.x (Engine.IO v2)
  • v2.x (Engine.IO v3)
  • v3.x (Engine.IO v4)
  • v4.x (Engine.IO v4)

Transports

  • HTTP Polling
  • WebSocket

Namespaces

  • Default namespace (/)
  • Custom namespace (/chat)

Payload Types

  • Text events
  • Binary events
  • Mixed JSON + Binary payloads
  • ACK callbacks
  • Server emitted events

Validation

The test suite verifies:

  • Successful connections
  • Correct transport selection
  • Event delivery
  • Event ordering
  • Binary payload integrity
  • ACK behavior
  • Namespace isolation
  • Duplicate event detection
  • Connect/disconnect lifecycle
  • Engine.IO version compatibility

Test Infrastructure

  • Playwright (headless)
  • Embedded Python HTTP server for serving browser assets
  • Automated browser execution from JUnit
  • CI compatible (GitHub Actions)

Benefits

  • End-to-end browser interoperability coverage
  • Cross-browser validation
  • Regression protection
  • Automated compatibility verification for future releases

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions