Skip to content
代码片段 群组 项目
BrowserRefreshMiddlewareTest.cs 2.8 KB
更新 更旧
  • 了解如何忽略特定修订
  • // Copyright (c) .NET Foundation. All rights reserved.
    // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
    
    using Microsoft.AspNetCore.Http;
    using Xunit;
    
    namespace Microsoft.AspNetCore.Watch.BrowserRefresh
    {
        public class BrowserRefreshMiddlewareTest
        {
            [Theory]
            [InlineData("DELETE")]
            [InlineData("head")]
            [InlineData("Put")]
            public void IsBrowserRequest_ReturnsFalse_ForNonGetOrPostRequests(string method)
            {
                // Arrange
                var context = new DefaultHttpContext
                {
                    Request =
                    {
                        Method = method,
                        Headers =
                        {
                            ["Accept"] = "application/html",
                        },
                    },
                };
    
                // Act
                var result = BrowserRefreshMiddleware.IsBrowserRequest(context);
    
                // Assert
                Assert.False(result);
            }
    
            [Fact]
            public void IsBrowserRequest_ReturnsFalse_IsRequestDoesNotAcceptHtml()
            {
                // Arrange
                var context = new DefaultHttpContext
                {
                    Request =
                    {
                        Method = "GET",
                        Headers =
                        {
                            ["Accept"] = "application/xml",
                        },
                    },
                };
    
                // Act
                var result = BrowserRefreshMiddleware.IsBrowserRequest(context);
    
                // Assert
                Assert.False(result);
            }
    
            [Fact]
            public void IsBrowserRequest_ReturnsTrue_ForGetRequestsThatAcceptHtml()
            {
                // Arrange
                var context = new DefaultHttpContext
                {
                    Request =
                    {
                        Method = "GET",
                        Headers =
                        {
                            ["Accept"] = "application/json,text/html;q=0.9",
                        },
                    },
                };
    
                // Act
                var result = BrowserRefreshMiddleware.IsBrowserRequest(context);
    
                // Assert
                Assert.True(result);
            }
    
            [Fact]
            public void IsBrowserRequest_ReturnsTrue_ForRequestsThatAcceptAnyHtml()
            {
                // Arrange
                var context = new DefaultHttpContext
                {
                    Request =
                    {
                        Method = "Post",
                        Headers =
                        {
                            ["Accept"] = "application/json,text/*+html;q=0.9",
                        },
                    },
                };
    
                // Act
                var result = BrowserRefreshMiddleware.IsBrowserRequest(context);
    
                // Assert
                Assert.True(result);
            }
        }
    }