From 420b5ef6df7c300ef1167f4e08dd480410f2a576 Mon Sep 17 00:00:00 2001 From: Brett McBride Date: Thu, 30 Jan 2025 08:38:08 +1100 Subject: [PATCH] disallow empty string for baggage name (#1484) spec 1.36.0 clarifies that empty string is not a valid baggage name --- src/API/Baggage/BaggageBuilder.php | 3 +++ tests/Unit/API/Baggage/BaggageTest.php | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/API/Baggage/BaggageBuilder.php b/src/API/Baggage/BaggageBuilder.php index 434e0c2d0..fa909902f 100644 --- a/src/API/Baggage/BaggageBuilder.php +++ b/src/API/Baggage/BaggageBuilder.php @@ -22,6 +22,9 @@ public function remove(string $key): BaggageBuilderInterface /** @inheritDoc */ public function set(string $key, $value, ?MetadataInterface $metadata = null): BaggageBuilderInterface { + if ($key === '') { + return $this; + } $metadata ??= Metadata::getEmpty(); $this->entries[$key] = new Entry($value, $metadata); diff --git a/tests/Unit/API/Baggage/BaggageTest.php b/tests/Unit/API/Baggage/BaggageTest.php index c4de0254d..293f61fe5 100644 --- a/tests/Unit/API/Baggage/BaggageTest.php +++ b/tests/Unit/API/Baggage/BaggageTest.php @@ -125,5 +125,11 @@ public function test_get_all(): void ); } + public function test_empty_name_disallowed(): void + { + $baggage = Baggage::getBuilder()->set('', 'bar')->build(); + $this->assertTrue($baggage->isEmpty()); + } + // endregion }