File: src\Servers\IIS\IIS\test\Common.FunctionalTests\Infrastructure\IISCompressionSiteFixture.cs
Web Access
Project: src\src\Servers\IIS\IIS\test\IIS.NewHandler.FunctionalTests\IIS.NewHandler.FunctionalTests.csproj (IIS.NewHandler.FunctionalTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Server.IntegrationTesting.IIS;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing;
 
namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests;
 
public class IISCompressionSiteFixture : IISTestSiteFixture
{
    public IISCompressionSiteFixture() : base(Configure)
    {
    }
 
    private static void Configure(IISDeploymentParameters deploymentParameters)
    {
        // Enable dynamic compression
        deploymentParameters.ServerConfigActionList.Add(
            (element, _) =>
            {
                var webServerElement = element
                    .RequiredElement("system.webServer");
 
                webServerElement
                    .GetOrAdd("urlCompression")
                    .SetAttributeValue("doDynamicCompression", "true");
 
                webServerElement
                    .GetOrAdd("httpCompression")
                    .GetOrAdd("dynamicTypes")
                    .GetOrAdd("add", "mimeType", "text/*")
                    .SetAttributeValue("enabled", "true");
 
            });
 
        deploymentParameters.EnableModule("DynamicCompressionModule", "%IIS_BIN%\\compdyn.dll");
    }
}