From 86d128d727b05a2fd3c27af3d57a1eb7e6f7f6c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 6 Jun 2026 13:11:41 +0000 Subject: [PATCH 1/3] Initial plan From 5e26c64ec8cb5b5bb58207860eafa93feace4547 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 6 Jun 2026 13:15:45 +0000 Subject: [PATCH 2/3] Report actual messageType value in ThrowIfInvalidMessageType ArgumentException Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com> --- .../src/System/Net/WebSockets/ManagedWebSocket.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs index 388c660cd01d39..1b9ccb2df177b1 100644 --- a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs +++ b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs @@ -1918,13 +1918,13 @@ internal static void ThrowIfInvalidMessageType(WebSocketMessageType messageType, { if (messageType is not (WebSocketMessageType.Text or WebSocketMessageType.Binary)) { - ThrowInvalidMessageType(paramName); + ThrowInvalidMessageType(messageType, paramName); } - static void ThrowInvalidMessageType(string? paramName) => + static void ThrowInvalidMessageType(WebSocketMessageType messageType, string? paramName) => throw new ArgumentException(SR.Format( SR.net_WebSockets_Argument_InvalidMessageType, - nameof(WebSocketMessageType.Close), nameof(SendAsync), nameof(WebSocketMessageType.Binary), nameof(WebSocketMessageType.Text), nameof(CloseOutputAsync)), + messageType, nameof(SendAsync), nameof(WebSocketMessageType.Binary), nameof(WebSocketMessageType.Text), nameof(CloseOutputAsync)), paramName); } From d42950a70c5e95930667f47d65f5664b2e268e7f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 6 Jun 2026 14:15:24 +0000 Subject: [PATCH 3/3] Add undefined message-type assertion to websocket send test Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com> --- .../tests/SendReceiveTest.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs index f74e1efc848f48..b33dde78018143 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs @@ -185,10 +185,17 @@ protected async Task RunClient_SendAsync_SendCloseMessageType_ThrowsArgumentExce var expectedException = new ArgumentException(expectedInnerMessage, "messageType"); string expectedMessage = expectedException.Message; - AssertExtensions.Throws("messageType", () => + ArgumentException ex = AssertExtensions.Throws("messageType", () => { Task t = SendAsync(cws, new ArraySegment(), WebSocketMessageType.Close, true, cts.Token); }); + Assert.Equal(expectedMessage, ex.Message); + + ArgumentException ex2 = AssertExtensions.Throws("messageType", () => + { + Task t = SendAsync(cws, new ArraySegment(), (WebSocketMessageType)999, true, cts.Token); + }); + Assert.Contains("999", ex2.Message); Assert.Equal(WebSocketState.Open, cws.State); }