Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }