public async Task ReplacesDashesWithDots_WhenTheyAppearInPairs()
        {
            // Arrange
            var circuitFactory  = new TestCircuitFactory(() => "--1234--");
            var circuitRegistry = new CircuitRegistry(
                Options.Create(new CircuitOptions()),
                Mock.Of <ILogger <CircuitRegistry> >(),
                TestCircuitIdFactory.CreateTestFactory());
            var circuitPrerenderer = new CircuitPrerenderer(circuitFactory, circuitRegistry);
            var httpContext        = new DefaultHttpContext();
            var httpRequest        = httpContext.Request;

            httpRequest.Scheme = "https";
            httpRequest.Host   = new HostString("example.com", 1234);
            httpRequest.Path   = "/some/path";

            var prerenderingContext = new ComponentPrerenderingContext
            {
                ComponentType = typeof(UriDisplayComponent),
                Parameters    = ParameterView.Empty,
                Context       = httpContext
            };

            // Act
            var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext);

            // Assert
            Assert.Equal("..1234..", GetUnwrappedCircuitInfo(result).RootElement.GetProperty("circuitId").GetString());
        }
Exemplo n.º 2
0
        public async Task ExtractsUriFromHttpContext_NonemptyPathBase()
        {
            // Arrange
            var circuitFactory     = new TestCircuitFactory();
            var circuitRegistry    = new CircuitRegistry(Options.Create(new CircuitOptions()), Mock.Of <ILogger <CircuitRegistry> >());
            var circuitPrerenderer = new CircuitPrerenderer(circuitFactory, circuitRegistry);
            var httpContext        = new DefaultHttpContext();
            var httpRequest        = httpContext.Request;

            httpRequest.Scheme   = "https";
            httpRequest.Host     = new HostString("example.com", 1234);
            httpRequest.PathBase = "/my/dir";
            httpRequest.Path     = "/some/path";

            var prerenderingContext = new ComponentPrerenderingContext
            {
                ComponentType = typeof(UriDisplayComponent),
                Parameters    = ParameterCollection.Empty,
                Context       = httpContext
            };

            // Act
            var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext);

            // Assert
            Assert.Equal(string.Join("", new[]
            {
                "The current URI is ",
                "https://example.com:1234/my/dir/some/path",
                " within base URI ",
                "https://example.com:1234/my/dir/"
            }), GetUnwrappedContent(result));
        }
Exemplo n.º 3
0
        public async Task ExtractsUriFromHttpContext_NonemptyPathBase()
        {
            // Arrange
            var circuitFactory     = new TestCircuitFactory();
            var circuitPrerenderer = new CircuitPrerenderer(circuitFactory);
            var httpContext        = new Mock <HttpContext>();
            var httpRequest        = new Mock <HttpRequest>().SetupAllProperties();

            httpContext.Setup(h => h.Request).Returns(httpRequest.Object);
            httpRequest.Object.Scheme   = "https";
            httpRequest.Object.Host     = new HostString("example.com", 1234);
            httpRequest.Object.PathBase = "/my/dir";
            httpRequest.Object.Path     = "/some/path";

            var prerenderingContext = new ComponentPrerenderingContext
            {
                ComponentType = typeof(UriDisplayComponent),
                Parameters    = ParameterCollection.Empty,
                Context       = httpContext.Object
            };

            // Act
            var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext);

            // Assert
            Assert.Equal(new[]
            {
                "The current URI is ",
                "https://example.com:1234/my/dir/some/path",
                " within base URI ",
                "https://example.com:1234/my/dir/"
            }, result);
        }
Exemplo n.º 4
0
    private static (Mock <IClientProxy>, ComponentHub) InitializeComponentHub()
    {
        var ephemeralDataProtectionProvider = new EphemeralDataProtectionProvider();
        var circuitIdFactory = new CircuitIdFactory(ephemeralDataProtectionProvider);
        var circuitFactory   = new TestCircuitFactory(
            new Mock <IServiceScopeFactory>().Object,
            NullLoggerFactory.Instance,
            circuitIdFactory,
            Options.Create(new CircuitOptions()));
        var circuitRegistry = new CircuitRegistry(
            Options.Create(new CircuitOptions()),
            NullLogger <CircuitRegistry> .Instance,
            circuitIdFactory);
        var serializer            = new TestServerComponentDeserializer();
        var circuitHandleRegistry = new TestCircuitHandleRegistry();
        var hub = new ComponentHub(
            serializer: serializer,
            dataProtectionProvider: ephemeralDataProtectionProvider,
            circuitFactory: circuitFactory,
            circuitIdFactory: circuitIdFactory,
            circuitRegistry: circuitRegistry,
            circuitHandleRegistry: circuitHandleRegistry,
            logger: NullLogger <ComponentHub> .Instance);

        // Here we mock out elements of the Hub that are typically configured
        // by SignalR as clients connect to the hub.
        var mockCaller      = new Mock <IHubCallerClients>();
        var mockClientProxy = new Mock <IClientProxy>();

        mockCaller.Setup(x => x.Caller).Returns(mockClientProxy.Object);
        hub.Clients = mockCaller.Object;
        var mockContext = new Mock <HubCallerContext>();

        mockContext.Setup(x => x.ConnectionId).Returns("123");
        hub.Context = mockContext.Object;

        return(mockClientProxy, hub);
    }