System.Net.Mail.Tests.MessageEncodeHeadersTest.EncodeHeaders_UserSettableHeaderDoesntAllowUnicode_ShouldEncode C# (CSharp) Method

EncodeHeaders_UserSettableHeaderDoesntAllowUnicode_ShouldEncode() private method

        public void EncodeHeaders_UserSettableHeaderDoesntAllowUnicode_ShouldEncode()
        {
            // We should have rejected such a value in the past, but instead we just encode it.
            // Maintain this behavior for app-compat.
            _headers.Add("Message-ID", CustomUnicodeHeaderValue);
            _message.EncodeHeaders(_headers, false);

            string encodedHeader = _headers.Get("Message-ID");
            Assert.True(encodedHeader.StartsWith("="), encodedHeader);
            Assert.True(encodedHeader.EndsWith("="), encodedHeader);
            Assert.False(ContainsNonAscii(encodedHeader), encodedHeader);

            Assert.Equal(Encoding.UTF8, _message.HeadersEncoding);

            // Allow Unicode, but encode because this specific header doesn't allow Unicode.
            _headers.Clear();
            _headers.Add("Message-ID", CustomUnicodeHeaderValue);
            _message.EncodeHeaders(_headers, true);

            encodedHeader = _headers.Get("Message-ID");
            Assert.True(encodedHeader.StartsWith("="), encodedHeader);
            Assert.True(encodedHeader.EndsWith("="), encodedHeader);
            Assert.False(ContainsNonAscii(encodedHeader), encodedHeader);
        }