Merge branch 'release/2.2'
This commit is contained in:
commit
012f953a9d
|
|
@ -5,58 +5,58 @@
|
|||
<PropertyGroup Label="Package Versions">
|
||||
<BenchmarkDotNetPackageVersion>0.10.13</BenchmarkDotNetPackageVersion>
|
||||
<GoogleProtobufPackageVersion>3.1.0</GoogleProtobufPackageVersion>
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-alpha1-10657</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview-181108-06</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<InternalAspNetCoreSdkPackageVersion>3.0.0-alpha1-20181011.3</InternalAspNetCoreSdkPackageVersion>
|
||||
<MessagePackPackageVersion>1.7.3.4</MessagePackPackageVersion>
|
||||
<MicrosoftAspNetCoreAllPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAllPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationCorePackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAuthenticationCorePackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthorizationPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAuthorizationPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthorizationPolicyPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreAuthorizationPolicyPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreCorsPackageVersion>3.0.0-alpha1-10605</MicrosoftAspNetCoreCorsPackageVersion>
|
||||
<MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>
|
||||
<MicrosoftAspNetCoreDiagnosticsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreDiagnosticsPackageVersion>
|
||||
<MicrosoftAspNetCoreHostingAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreHostingPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHostingPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpFeaturesPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpFeaturesPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreHttpPackageVersion>
|
||||
<MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>
|
||||
<MicrosoftAspNetCoreMvcPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreMvcPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreRoutingPackageVersion>
|
||||
<MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.2.0-rtm-10660</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
|
||||
<MicrosoftAspNetCoreServerKestrelPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreServerKestrelPackageVersion>
|
||||
<MicrosoftAspNetCoreStaticFilesPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreStaticFilesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestHostPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreTestHostPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-alpha1-10657</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreWebSocketsPackageVersion>3.0.0-alpha1-10660</MicrosoftAspNetCoreWebSocketsPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationCorePackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreAuthenticationCorePackageVersion>
|
||||
<MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthorizationPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreAuthorizationPackageVersion>
|
||||
<MicrosoftAspNetCoreAuthorizationPolicyPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreAuthorizationPolicyPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreCorsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreCorsPackageVersion>
|
||||
<MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>
|
||||
<MicrosoftAspNetCoreDiagnosticsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreDiagnosticsPackageVersion>
|
||||
<MicrosoftAspNetCoreHostingAbstractionsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreHostingPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreHostingPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpAbstractionsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpFeaturesPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreHttpFeaturesPackageVersion>
|
||||
<MicrosoftAspNetCoreHttpPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreHttpPackageVersion>
|
||||
<MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>
|
||||
<MicrosoftAspNetCoreMvcPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreMvcPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreRoutingPackageVersion>
|
||||
<MicrosoftAspNetCoreServerIISIntegrationPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
|
||||
<MicrosoftAspNetCoreServerKestrelPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreServerKestrelPackageVersion>
|
||||
<MicrosoftAspNetCoreStaticFilesPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreStaticFilesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestHostPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreTestHostPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview-181108-06</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreWebSocketsPackageVersion>3.0.0-alpha1-10727</MicrosoftAspNetCoreWebSocketsPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>4.6.0-preview1-26907-04</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreDesignPackageVersion>3.0.0-alpha1-10660</MicrosoftEntityFrameworkCoreDesignPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-alpha1-10660</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-alpha1-10660</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftExtensionsBuffersTestingSourcesPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsBuffersTestingSourcesPackageVersion>
|
||||
<MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-alpha1-10660</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsSecurityHelperSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsSecurityHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersSourcesPackageVersion>3.0.0-alpha1-10657</MicrosoftExtensionsWebEncodersSourcesPackageVersion>
|
||||
<MicrosoftNETCoreApp22PackageVersion>2.2.0-rtm-27023-02</MicrosoftNETCoreApp22PackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreDesignPackageVersion>3.0.0-preview-181109-02</MicrosoftEntityFrameworkCoreDesignPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview-181109-02</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview-181109-02</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftExtensionsBuffersTestingSourcesPackageVersion>3.0.0-alpha1-10727</MicrosoftExtensionsBuffersTestingSourcesPackageVersion>
|
||||
<MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsSecurityHelperSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsSecurityHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersSourcesPackageVersion>3.0.0-preview-181108-06</MicrosoftExtensionsWebEncodersSourcesPackageVersion>
|
||||
<MicrosoftNETCoreApp22PackageVersion>2.2.0-rtm-27105-02</MicrosoftNETCoreApp22PackageVersion>
|
||||
<MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
|
||||
<MoqPackageVersion>4.10.0</MoqPackageVersion>
|
||||
<NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
|
||||
|
|
|
|||
|
|
@ -75,8 +75,8 @@
|
|||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="GetJavaArtifactInfo">
|
||||
<ItemGroup Condition="'$(HasJava)' == 'true' AND '$(SkipJavaClient)' != 'true'">
|
||||
<Target Name="GetJavaArtifactInfo" DependsOnTargets="DetectJava" Condition=" '$(SkipJavaClient)' != 'true' ">
|
||||
<ItemGroup Condition="'$(HasJava)' == 'true'">
|
||||
<ArtifactInfo Include="$(BuildDir)\%(Jars.Identity)">
|
||||
<ArtifactType>JavaJar</ArtifactType>
|
||||
<Version>$(JavaClientVersion)</Version>
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
<Category>ship</Category>
|
||||
</ArtifactInfo>
|
||||
|
||||
<FilesToSign Include="$(BuildDir)\%(Jars.Identity)" Certificate="MicrosoftJAR" />
|
||||
<FilesToSign Include="$(BuildDir)\%(Jars.Identity)" Certificate="$(JarSigningCertName)" />
|
||||
<FilesToExcludeFromSigning Include="$(BuildDir)\%(PomFile.Identity)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="$(MicrosoftAspNetCoreCorsPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="$(MicrosoftAspNetCoreDiagnosticsPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="$(MicrosoftAspNetCoreServerIISIntegrationPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
|
||||
|
|
|
|||
|
|
@ -3,8 +3,11 @@
|
|||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace FunctionalTests
|
||||
{
|
||||
|
|
@ -31,7 +34,42 @@ namespace FunctionalTests
|
|||
factory.AddDebug();
|
||||
factory.SetMinimumLevel(LogLevel.Information);
|
||||
})
|
||||
.UseKestrel()
|
||||
.UseKestrel((builderContext, options) =>
|
||||
{
|
||||
options.ConfigureHttpsDefaults(httpsOptions =>
|
||||
{
|
||||
bool useRSA = false;
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
// Detect Win10+
|
||||
var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
|
||||
var major = key.GetValue("CurrentMajorVersionNumber") as int?;
|
||||
var minor = key.GetValue("CurrentMinorVersionNumber") as int?;
|
||||
|
||||
if (major.HasValue && minor.HasValue)
|
||||
{
|
||||
useRSA = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
useRSA = true;
|
||||
}
|
||||
|
||||
if (useRSA)
|
||||
{
|
||||
// RSA cert, won't work on Windows 8.1 & Windows 2012 R2 using HTTP2, and ECC won't work in some Node environments
|
||||
var certPath = Path.Combine(Directory.GetCurrentDirectory(), "testCert.pfx");
|
||||
httpsOptions.ServerCertificate = new X509Certificate2(certPath, "testPassword");
|
||||
}
|
||||
else
|
||||
{
|
||||
// ECC cert, works on Windows 8.1 & Windows 2012 R2 using HTTP2
|
||||
var certPath = Path.Combine(Directory.GetCurrentDirectory(), "testCertECC.pfx");
|
||||
httpsOptions.ServerCertificate = new X509Certificate2(certPath, "testPassword");
|
||||
}
|
||||
});
|
||||
})
|
||||
.UseContentRoot(Directory.GetCurrentDirectory())
|
||||
.UseIISIntegration()
|
||||
.UseStartup<Startup>();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ using Microsoft.AspNetCore.Hosting;
|
|||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http.Connections;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Primitives;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
|
|
@ -32,15 +34,13 @@ namespace FunctionalTests
|
|||
{
|
||||
options.EnableDetailedErrors = true;
|
||||
})
|
||||
.AddJsonProtocol(options =>
|
||||
{
|
||||
// we are running the same tests with JSON and MsgPack protocols and having
|
||||
// consistent casing makes it cleaner to verify results
|
||||
options.PayloadSerializerSettings.ContractResolver = new DefaultContractResolver();
|
||||
})
|
||||
.AddMessagePackProtocol();
|
||||
|
||||
services.AddCors();
|
||||
.AddJsonProtocol(options =>
|
||||
{
|
||||
// we are running the same tests with JSON and MsgPack protocols and having
|
||||
// consistent casing makes it cleaner to verify results
|
||||
options.PayloadSerializerSettings.ContractResolver = new DefaultContractResolver();
|
||||
})
|
||||
.AddMessagePackProtocol();
|
||||
|
||||
services.AddAuthorization(options =>
|
||||
{
|
||||
|
|
@ -90,12 +90,36 @@ namespace FunctionalTests
|
|||
|
||||
app.UseFileServer();
|
||||
|
||||
app.UseCors(policyBuilder =>
|
||||
// Custom CORS to allow any origin + credentials (which isn't allowed by the CORS spec)
|
||||
// This is for testing purposes only (karma hosts the client on its own server), never do this in production
|
||||
app.Use((context, next) =>
|
||||
{
|
||||
policyBuilder.AllowAnyOrigin()
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod()
|
||||
.AllowCredentials();
|
||||
var originHeader = context.Request.Headers[HeaderNames.Origin];
|
||||
if (!StringValues.IsNullOrEmpty(originHeader))
|
||||
{
|
||||
context.Response.Headers[HeaderNames.AccessControlAllowOrigin] = originHeader;
|
||||
context.Response.Headers[HeaderNames.AccessControlAllowCredentials] = "true";
|
||||
|
||||
var requestMethod = context.Request.Headers[HeaderNames.AccessControlRequestMethod];
|
||||
if (!StringValues.IsNullOrEmpty(requestMethod))
|
||||
{
|
||||
context.Response.Headers[HeaderNames.AccessControlAllowMethods] = requestMethod;
|
||||
}
|
||||
|
||||
var requestHeaders = context.Request.Headers[HeaderNames.AccessControlRequestHeaders];
|
||||
if (!StringValues.IsNullOrEmpty(requestHeaders))
|
||||
{
|
||||
context.Response.Headers[HeaderNames.AccessControlAllowHeaders] = requestHeaders;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.Equals(context.Request.Method, "OPTIONS", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
context.Response.StatusCode = StatusCodes.Status204NoContent;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
return next.Invoke();
|
||||
});
|
||||
|
||||
app.UseConnections(routes =>
|
||||
|
|
|
|||
|
|
@ -57,8 +57,9 @@ try {
|
|||
ChromeHeadlessNoSandbox: {
|
||||
base: 'ChromeHeadless',
|
||||
|
||||
// Ignore cert errors to allow our test cert to work (NEVER do this outside of testing)
|
||||
// ChromeHeadless runs about 10x slower on Windows 7 machines without the --proxy switches below. Why? ¯\_(ツ)_/¯
|
||||
flags: ["--no-sandbox", "--proxy-server='direct://'", "--proxy-bypass-list=*"]
|
||||
flags: ["--no-sandbox", "--proxy-server='direct://'", "--proxy-bypass-list=*", "--allow-insecure-localhost", "--ignore-certificate-errors"]
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -33,11 +33,12 @@ setTimeout(() => {
|
|||
process.exit(1);
|
||||
}, 1000 * 60 * 10);
|
||||
|
||||
function waitForMatch(command: string, process: ChildProcess, regex: RegExp): Promise<RegExpMatchArray> {
|
||||
return new Promise<RegExpMatchArray>((resolve, reject) => {
|
||||
function waitForMatches(command: string, process: ChildProcess, regex: RegExp, matchCount: number): Promise<RegExpMatchArray> {
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
const commandDebug = _debug(`${command}`);
|
||||
try {
|
||||
let lastLine = "";
|
||||
let results: string[] = null;
|
||||
|
||||
async function onData(this: Readable, chunk: string | Buffer): Promise<void> {
|
||||
try {
|
||||
|
|
@ -50,15 +51,23 @@ function waitForMatch(command: string, process: ChildProcess, regex: RegExp): Pr
|
|||
lastLine = "";
|
||||
|
||||
chunk = chunk.substring(lineEnd + EOL.length);
|
||||
const res = regex.exec(chunkLine);
|
||||
if (results == null && res != null) {
|
||||
results = res;
|
||||
} else if (res != null) {
|
||||
results = Array<string>().concat(results, res);
|
||||
}
|
||||
|
||||
const results = regex.exec(chunkLine);
|
||||
commandDebug(chunkLine);
|
||||
if (results && results.length > 0) {
|
||||
// * 2 because each match will have the original line plus the match
|
||||
if (results && results.length >= matchCount * 2) {
|
||||
resolve(results);
|
||||
return;
|
||||
}
|
||||
|
||||
commandDebug(chunkLine);
|
||||
lineEnd = chunk.indexOf(EOL);
|
||||
}
|
||||
|
||||
lastLine = chunk.toString();
|
||||
} catch (e) {
|
||||
this.removeAllListeners("data");
|
||||
|
|
@ -158,15 +167,17 @@ function runKarma(karmaConfig) {
|
|||
});
|
||||
}
|
||||
|
||||
function runJest(url: string) {
|
||||
function runJest(httpsUrl: string, httpUrl: string) {
|
||||
const jestPath = path.resolve(__dirname, "..", "..", "common", "node_modules", "jest", "bin", "jest.js");
|
||||
const configPath = path.resolve(__dirname, "..", "func.jest.config.js");
|
||||
|
||||
console.log("Starting Node tests using Jest.");
|
||||
return new Promise<number>((resolve, reject) => {
|
||||
const logStream = fs.createWriteStream(path.resolve(__dirname, "..", "..", "..", "..", "artifacts", "logs", "node.functionaltests.log"));
|
||||
const p = exec(`"${process.execPath}" "${jestPath}" --config "${configPath}"`, { env: { SERVER_URL: url }, timeout: 200000, maxBuffer: 10 * 1024 * 1024 },
|
||||
// Use NODE_TLS_REJECT_UNAUTHORIZED to allow our test cert to be used by the Node tests (NEVER use this environment variable outside of testing)
|
||||
const p = exec(`"${process.execPath}" "${jestPath}" --config "${configPath}"`, { env: { SERVER_URL: `${httpsUrl};${httpUrl}`, NODE_TLS_REJECT_UNAUTHORIZED: 0 }, timeout: 200000, maxBuffer: 10 * 1024 * 1024 },
|
||||
(error: any, stdout, stderr) => {
|
||||
console.log("Finished Node tests.");
|
||||
if (error) {
|
||||
console.log(error.message);
|
||||
return resolve(error.code);
|
||||
|
|
@ -183,7 +194,7 @@ function runJest(url: string) {
|
|||
const serverPath = path.resolve(__dirname, "..", "bin", configuration, "netcoreapp2.2", "FunctionalTests.dll");
|
||||
|
||||
debug(`Launching Functional Test Server: ${serverPath}`);
|
||||
let desiredServerUrl = "http://127.0.0.1:0";
|
||||
let desiredServerUrl = "https://127.0.0.1:0;http://127.0.0.1:0";
|
||||
|
||||
if (sauce) {
|
||||
// SauceLabs can only proxy certain ports for Edge and Safari.
|
||||
|
|
@ -212,11 +223,12 @@ function runJest(url: string) {
|
|||
process.on("exit", cleanup);
|
||||
|
||||
debug("Waiting for Functional Test Server to start");
|
||||
const matches = await waitForMatch("dotnet", dotnet, /Now listening on: (http:\/\/[^\/]+:[\d]+)/);
|
||||
const url = matches[1];
|
||||
debug(`Functional Test Server has started at ${url}`);
|
||||
const matches = await waitForMatches("dotnet", dotnet, /Now listening on: (https?:\/\/[^\/]+:[\d]+)/, 2);
|
||||
const httpsUrl = matches[1];
|
||||
const httpUrl = matches[3];
|
||||
debug(`Functional Test Server has started at ${httpsUrl} and ${httpUrl}`);
|
||||
|
||||
debug(`Using SignalR Server: ${url}`);
|
||||
debug(`Using SignalR Server: ${httpsUrl} and ${httpUrl}`);
|
||||
|
||||
// Start karma server
|
||||
const conf = {
|
||||
|
|
@ -238,9 +250,9 @@ function runJest(url: string) {
|
|||
}
|
||||
|
||||
// Pass server URL to tests
|
||||
conf.client.args = ["--server", url];
|
||||
conf.client.args = ["--server", `${httpsUrl};${httpUrl}`];
|
||||
|
||||
const jestExit = await runJest(url);
|
||||
const jestExit = await runJest(httpsUrl, httpUrl);
|
||||
|
||||
// Check if we got any browsers
|
||||
let karmaExit;
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -5,27 +5,35 @@ import { HttpTransportType, IHubProtocol, JsonHubProtocol } from "@aspnet/signal
|
|||
import { MessagePackHubProtocol } from "@aspnet/signalr-protocol-msgpack";
|
||||
|
||||
export let ENDPOINT_BASE_URL: string;
|
||||
export let ENDPOINT_BASE_HTTPS_URL: string;
|
||||
|
||||
if (typeof window !== "undefined" && (window as any).__karma__) {
|
||||
const args = (window as any).__karma__.config.args as string[];
|
||||
let server = "";
|
||||
let httpsServer = "";
|
||||
let httpServer = "";
|
||||
|
||||
for (let i = 0; i < args.length; i += 1) {
|
||||
switch (args[i]) {
|
||||
case "--server":
|
||||
i += 1;
|
||||
server = args[i];
|
||||
const urls = args[i].split(";");
|
||||
httpsServer = urls[0];
|
||||
httpServer = urls[1];
|
||||
console.log(httpServer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Running in Karma? Need to use an absolute URL
|
||||
ENDPOINT_BASE_URL = server;
|
||||
ENDPOINT_BASE_URL = httpServer;
|
||||
ENDPOINT_BASE_HTTPS_URL = httpsServer;
|
||||
console.log(`Using SignalR Server: ${ENDPOINT_BASE_URL}`);
|
||||
} else if (typeof document !== "undefined") {
|
||||
ENDPOINT_BASE_URL = `${document.location.protocol}//${document.location.host}`;
|
||||
} else if (process && process.env && process.env.SERVER_URL) {
|
||||
ENDPOINT_BASE_URL = process.env.SERVER_URL;
|
||||
const urls = process.env.SERVER_URL.split(";");
|
||||
ENDPOINT_BASE_HTTPS_URL = urls[0];
|
||||
ENDPOINT_BASE_URL = urls[1];
|
||||
} else {
|
||||
throw new Error("The server could not be found.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,12 @@
|
|||
import { AbortError, DefaultHttpClient, HttpClient, HttpRequest, HttpResponse, HttpTransportType, HubConnectionBuilder, IHttpConnectionOptions, JsonHubProtocol, NullLogger } from "@aspnet/signalr";
|
||||
import { MessagePackHubProtocol } from "@aspnet/signalr-protocol-msgpack";
|
||||
|
||||
import { eachTransport, eachTransportAndProtocol, ENDPOINT_BASE_URL } from "./Common";
|
||||
import { eachTransport, eachTransportAndProtocol, ENDPOINT_BASE_HTTPS_URL, ENDPOINT_BASE_URL } from "./Common";
|
||||
import "./LogBannerReporter";
|
||||
import { TestLogger } from "./TestLogger";
|
||||
|
||||
const TESTHUBENDPOINT_URL = ENDPOINT_BASE_URL + "/testhub";
|
||||
const TESTHUBENDPOINT_HTTPS_URL = ENDPOINT_BASE_HTTPS_URL + "/testhub";
|
||||
const TESTHUB_NOWEBSOCKETS_ENDPOINT_URL = ENDPOINT_BASE_URL + "/testhub-nowebsockets";
|
||||
|
||||
// On slower CI machines, these tests sometimes take longer than 5s
|
||||
|
|
@ -62,6 +63,35 @@ describe("hubConnection", () => {
|
|||
});
|
||||
});
|
||||
|
||||
// Run test in Node or Chrome, but not on macOS
|
||||
if ((process && process.platform !== "darwin") && (typeof navigator === "undefined" || navigator.userAgent.search("Chrome") !== -1)) {
|
||||
it("using https, can invoke server method and receive result", (done) => {
|
||||
const message = "你好,世界!";
|
||||
|
||||
const hubConnection = getConnectionBuilder(transportType, TESTHUBENDPOINT_HTTPS_URL)
|
||||
.withHubProtocol(protocol)
|
||||
.build();
|
||||
|
||||
hubConnection.onclose((error) => {
|
||||
expect(error).toBeUndefined();
|
||||
done();
|
||||
});
|
||||
|
||||
hubConnection.start().then(() => {
|
||||
hubConnection.invoke("Echo", message).then((result) => {
|
||||
expect(result).toBe(message);
|
||||
}).catch((e) => {
|
||||
fail(e);
|
||||
}).then(() => {
|
||||
hubConnection.stop();
|
||||
});
|
||||
}).catch((e) => {
|
||||
fail(e);
|
||||
done();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
it("can invoke server method non-blocking and not receive result", (done) => {
|
||||
const message = "你好,世界!";
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue