private static SameSiteMode RpcSameSiteEnumConverter(RpcHttpCookie.Types.SameSite sameSite) { switch (sameSite) { case RpcHttpCookie.Types.SameSite.Strict: return(SameSiteMode.Strict); case RpcHttpCookie.Types.SameSite.Lax: return(SameSiteMode.Lax); case RpcHttpCookie.Types.SameSite.None: return((SameSiteMode)(-1)); default: return((SameSiteMode)(-1)); } }
private static SameSiteMode RpcSameSiteEnumConverter(RpcHttpCookie.Types.SameSite sameSite) { switch (sameSite) { case RpcHttpCookie.Types.SameSite.Strict: return(SameSiteMode.Strict); case RpcHttpCookie.Types.SameSite.Lax: return(SameSiteMode.Lax); case RpcHttpCookie.Types.SameSite.None: return(SameSiteMode.Unspecified); case RpcHttpCookie.Types.SameSite.ExplicitNone: return(SameSiteMode.None); default: return(SameSiteMode.Unspecified); } }
public void SetCookie_ReturnsExpectedResult(string name, string value, RpcHttpCookie.Types.SameSite sameSite, string expires, string domain, bool?httpOnly, double?maxAge, string path, bool?secure) { // Mock rpc cookie var rpcCookie = new RpcHttpCookie() { Name = name, Value = value, SameSite = sameSite }; if (!string.IsNullOrEmpty(domain)) { rpcCookie.Domain = new NullableString() { Value = domain }; } if (!string.IsNullOrEmpty(path)) { rpcCookie.Path = new NullableString() { Value = path }; } if (maxAge.HasValue) { rpcCookie.MaxAge = new NullableDouble() { Value = maxAge.Value }; } DateTimeOffset?expiresDateTime = null; if (!string.IsNullOrEmpty(expires)) { if (DateTimeOffset.TryParse(expires, out DateTimeOffset result)) { expiresDateTime = result; rpcCookie.Expires = new NullableTimestamp() { Value = result.ToTimestamp() }; } } if (httpOnly.HasValue) { rpcCookie.HttpOnly = new NullableBool() { Value = httpOnly.Value }; } if (secure.HasValue) { rpcCookie.Secure = new NullableBool() { Value = secure.Value }; } var appendCookieArguments = Utilities.RpcHttpCookieConverter(rpcCookie); Assert.Equal(appendCookieArguments.Item1, name); Assert.Equal(appendCookieArguments.Item2, value); var cookieOptions = appendCookieArguments.Item3; Assert.Equal(cookieOptions.Domain, domain); Assert.Equal(cookieOptions.Path, path ?? "/"); Assert.Equal(cookieOptions.MaxAge?.TotalSeconds, maxAge); Assert.Equal(cookieOptions.Expires?.UtcDateTime.ToString(), expiresDateTime?.UtcDateTime.ToString()); Assert.Equal(cookieOptions.Secure, secure ?? false); Assert.Equal(cookieOptions.HttpOnly, httpOnly ?? false); }