Exemple #1
0
        public async Task ViewsCanSwitchFromRegularToInstrumented(string actionName,
                                                                  string expected,
                                                                  IEnumerable <Tuple <int, int, bool> > expectedLineMappings)
        {
            // Arrange - 1
            var context  = new TestPageExecutionContext();
            var services = GetServiceProvider(context);
            var server   = TestServer.Create(services, _app);
            var client   = server.CreateClient();

            // Act - 1
            var body = await client.GetStringAsync("http://localhost/Home/" + actionName);

            // Assert - 1
            Assert.Equal(expected, body.Trim());
            Assert.Empty(context.Values);

            // Arrange - 2
            client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true");

            // Act - 2
            body = await client.GetStringAsync("http://localhost/Home/" + actionName);

            // Assert - 2
            Assert.Equal(expected, body.Trim());
            Assert.Equal(expectedLineMappings, context.Values);
        }
Exemple #2
0
        private IServiceProvider GetServiceProvider(TestPageExecutionContext pageExecutionContext)
        {
            var services = new ServiceCollection();

            services.AddInstance(pageExecutionContext);
            return(services.BuildServiceProvider(_services));
        }
        private IServiceProvider GetServiceProvider(TestPageExecutionContext pageExecutionContext)
        {
            var services = new ServiceCollection();

            services.AddInstance(pageExecutionContext);
            return(TestHelper.CreateServices("RazorInstrumentationWebsite", services));
        }
Exemple #4
0
        public async Task ViewsAreServedWithoutInstrumentationByDefault(string actionName,
                                                                        string expected,
                                                                        IEnumerable <Tuple <int, int, bool> > expectedLineMappings)
        {
            // Arrange
            var context  = new TestPageExecutionContext();
            var services = GetServiceProvider(context);
            var server   = TestServer.Create(services, _app);
            var client   = server.CreateClient();

            // Act
            var body = await client.GetStringAsync("http://localhost/Home/" + actionName);

            // Assert
            Assert.Equal(expected, body.Trim());
            Assert.Empty(context.Values);
        }
        public async Task SwitchingFromNonInstrumentedToInstrumentedWorksForLayoutAndViewStarts()
        {
            // Arrange - 1
            var expectedLineMappings = new[]
            {
                Tuple.Create(90, 1, true),
                Tuple.Create(92, 16, false),
                Tuple.Create(108, 1, true),
                Tuple.Create(0, 2, true),
                Tuple.Create(2, 8, true),
                Tuple.Create(10, 16, false),
                Tuple.Create(26, 1, true),
                Tuple.Create(27, 19, true),
                Tuple.Create(0, 6, true),
                Tuple.Create(7, 12, false),
                Tuple.Create(19, 1, true),
                Tuple.Create(21, 12, false),
                Tuple.Create(33, 7, true),
            };
            var context = new TestPageExecutionContext();
            var server  = TestHelper.CreateServer(_app, SiteName, services =>
            {
                services.AddInstance(context);
                _configureServices(services);
            });
            var client = server.CreateClient();

            // Act - 1
            var body = await client.GetStringAsync("http://localhost/Home/FullPath");

            // Assert - 1
            Assert.Empty(context.Values);

            // Arrange - 2
            client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true");

            // Act - 2
            body = await client.GetStringAsync("http://localhost/Home/ViewDiscoveryPath");

            // Assert - 2
            Assert.Equal(expectedLineMappings, context.Values);
        }
        public async Task ViewsAreServedWithoutInstrumentationByDefault(
            string actionName,
            string expected,
            IEnumerable <Tuple <int, int, bool> > ignored)
        {
            // Arrange
            var context = new TestPageExecutionContext();
            var server  = TestHelper.CreateServer(_app, SiteName, services =>
            {
                services.AddInstance(context);
                _configureServices(services);
            });
            var client = server.CreateClient();

            // Act
            var body = await client.GetStringAsync("http://localhost/Home/" + actionName);

            // Assert
            Assert.Equal(expected, body.Trim(), ignoreLineEndingDifferences: true);
            Assert.Empty(context.Values);
        }
Exemple #7
0
        public async Task SwitchingFromNonInstrumentedToInstrumentedWorksForLayoutAndViewStarts()
        {
            // Arrange - 1
            var expectedLineMappings = new[]
            {
                Tuple.Create(93, 2, true),
                Tuple.Create(96, 16, false),
                Tuple.Create(112, 2, true),
                Tuple.Create(0, 2, true),
                Tuple.Create(2, 8, true),
                Tuple.Create(10, 16, false),
                Tuple.Create(26, 1, true),
                Tuple.Create(27, 21, true),
                Tuple.Create(0, 7, true),
                Tuple.Create(8, 12, false),
                Tuple.Create(20, 2, true),
                Tuple.Create(23, 12, false),
                Tuple.Create(35, 8, true),
            };
            var context  = new TestPageExecutionContext();
            var services = GetServiceProvider(context);
            var server   = TestServer.Create(services, _app);
            var client   = server.CreateClient();

            // Act - 1
            var body = await client.GetStringAsync("http://localhost/Home/FullPath");

            // Assert - 1
            Assert.Empty(context.Values);

            // Arrange - 2
            client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true");

            // Act - 2
            body = await client.GetStringAsync("http://localhost/Home/ViewDiscoveryPath");

            // Assert - 2
            Assert.Equal(expectedLineMappings, context.Values);
        }
        public async Task ViewsAreInstrumentedWhenPageExecutionListenerFeatureIsEnabled(
            string actionName,
            string expected,
            IEnumerable <Tuple <int, int, bool> > expectedLineMappings)
        {
            // Arrange
            var context = new TestPageExecutionContext();
            var server  = TestHelper.CreateServer(_app, SiteName, services =>
            {
                services.AddInstance(context);
                _configureServices(services);
            });
            var client = server.CreateClient();

            client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true");

            // Act
            var body = await client.GetStringAsync("http://localhost/Home/" + actionName);

            // Assert
            Assert.Equal(expected, body.Trim(), ignoreLineEndingDifferences: true);
            Assert.Equal(expectedLineMappings, context.Values);
        }