Test Engineering

E2E Tests for Fullscreen, Rotation, Zoom, and Screen Panning

Test video fit, fullscreen permission, orientation, pinch zoom, bounded pan, controls, and post-refresh terminal state for remote screen viewing.

A capability stays maintainable only when the team can explain every state, retry, and piece of residual data—not merely show one successful run. Viewing is more than video playback. Gestures map CSS pixels through transforms to source dimensions, while fullscreen and orientation APIs depend on user activation and platform support.

Testing combines state models, fault injection, and real browser pairs. Deterministic cases protect known contracts, randomized timing finds races, and every failing seed plus endpoint trace becomes a permanent regression.

Questions the design must answer

This capability crosses clients, networks, and servers, so a local optimization can create a system failure. Decisions must constrain both endpoints, persisted truth, and operating budgets together.

  • Expose viewer state and transforms, drive real pointer/touch sequences, and explain fallback when orientation lock is unsupported instead of leaving a dead button.
  • Bound every input by size, count, and time, returning a stable actionable error code when a budget is exceeded.
  • Ship conservative defaults, server-side ceilings, and a rollout switch instead of trusting browser-provided numbers as resource budgets.

The delivery standard for E2E Tests for Fullscreen, Rotation, Zoom, and Screen Panning is a usable normal path, convergent failures, bounded resources, and a state users can understand. The result is a production capability that can be explained, degraded safely, and rolled back—not a demo that works once.

Edge cases are part of the feature

Prioritize faults that silently preserve false facts: the interface looks recovered while a queue, permission, or counter has diverged. The defect often appears only on the next action.

  • Screenshot-only tests miss focus and pan bounds, while a viewer refresh without viewer-left leaves the sharer encoding under a false active state.
  • A stale response arriving after a new task can overwrite healthy state or restart cancelled work without version fencing.
  • User or task IDs in metric labels create high-cardinality cost and leak unnecessary identity into diagnostics.

Prove that it works with evidence

Write the expected state trace before injecting faults. At every phase, reconcile user-visible outcome, both protocol endpoints, persistent records, and resource counts to prove the loop.

  1. On desktop, touch, and mobile viewports, enter and exit fullscreen, rotate 90 degrees, zoom 1–4x, pan all edges, and refresh B while asserting both peers.
  2. Race refresh, cancel, timeout, and remote completion in one scheduling window; assert one terminal state and one side effect.
  3. Cover direct, relayed, weak-network, background-tab, and mobile paths; do not rely on averages or one successful screenshot.

The release standard is practical: the normal path is fast, abnormal paths converge, recovery never overrides an explicit user decision, and operators can diagnose faults from limited, privacy-safe evidence.

Put the guide to work

Open uCopy and connect two devices securely from the browser.

Start for free