From 7d9ab8d28a60b1f38faac9548cbb498d1c61711a Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 03:54:42 +0000 Subject: [PATCH] Add tests for parse_server_timing_cfl4 Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- tests/test_speed.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/test_speed.py b/tests/test_speed.py index 3722359..908c1ee 100644 --- a/tests/test_speed.py +++ b/tests/test_speed.py @@ -47,6 +47,51 @@ def test_throughput_of_a_single_sample_is_that_sample(): assert throughput_from_samples([(12500000, 1.0)]) == pytest.approx(100.0) +def test_parse_server_timing_cfl4(): + # Happy path + header = 'cfL4;desc="?rtt=12000&min_rtt=10000&rtt_var=2000&delivery_rate=5000000&cwnd=100&unsent_bytes=0&recv_bytes=1000"' + stats = parse_server_timing_cfl4(header) + assert stats is not None + assert stats.rtt_ms == 12.0 + assert stats.min_rtt_ms == 10.0 + assert stats.rtt_var_ms == 2.0 + assert stats.delivery_rate_bps == 5000000 + assert stats.cwnd == 100 + assert stats.unsent_bytes == 0 + assert stats.recv_bytes == 1000 + + # Partial fields + header = 'cfL4;desc="?rtt=12000&min_rtt=10000"' + stats = parse_server_timing_cfl4(header) + assert stats is not None + assert stats.rtt_ms == 12.0 + assert stats.min_rtt_ms == 10.0 + assert stats.rtt_var_ms is None + assert stats.delivery_rate_bps is None + assert stats.cwnd is None + assert stats.unsent_bytes is None + assert stats.recv_bytes is None + + # Invalid values + header = 'cfL4;desc="?rtt=invalid&min_rtt=10000"' + stats = parse_server_timing_cfl4(header) + assert stats is not None + assert stats.rtt_ms is None + assert stats.min_rtt_ms == 10.0 + assert stats.rtt_var_ms is None + + # Edge cases - invalid headers + assert parse_server_timing_cfl4(None) is None # type: ignore[arg-type] + assert parse_server_timing_cfl4("") is None + assert parse_server_timing_cfl4("cfL4;") is None + assert parse_server_timing_cfl4("something else entirely") is None + + # Edge cases - valid headers but no query + stats = parse_server_timing_cfl4('cfL4;desc="?"') + assert stats is not None + assert stats.rtt_ms is None + + def test_throughput_of_no_samples_is_zero(): assert throughput_from_samples([]) == 0.0