コード例 #1
0
        public void PayloadContainsExpiresIn()
        {
            var result  = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);
            var payload = (IDictionary <string, object>)result["payload"];

            Assert.True(payload.ContainsKey("expires_in"));
        }
コード例 #2
0
        public void AccessTokenIsSetCorrectly()
        {
            var result  = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);
            var payload = (IDictionary <string, object>)result["payload"];

            Assert.Equal("101244219942650|2.wdrSr7KyE_VwQ0fjwOfW9A__.3600.1287608400-499091902|XzxMQd-_4tjlC2VEgide4rmg6LI", payload["access_token"]);
        }
コード例 #3
0
        public void ShouldThrowInvalidOperationException(string signedRequestWithMoreThanTwoDots)
        {
            string secret      = "secret";
            int    maxAge      = 3600;
            double currentTime = 1297678642.8070507;

            Assert.Throws <InvalidOperationException>(() => FacebookSignedRequest.TryParse(secret, signedRequestWithMoreThanTwoDots, maxAge, currentTime, true));
        }
コード例 #4
0
        public void IssuedAtIsExtractedCorrectly()
        {
            long expectedIssutedAt = 1287601988;

            var result = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);

            Assert.Equal(expectedIssutedAt, result["issued_at"]);
        }
コード例 #5
0
        public void ExpiresInIsSetCorrectly()
        {
            long expiresInUnixTime = 6412;

            var result  = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);
            var payload = (IDictionary <string, object>)result["payload"];

            Assert.Equal(expiresInUnixTime, payload["expires_in"]);
        }
コード例 #6
0
        public void ShouldThrowInvalidOperationException()
        {
            var    signedRequest = ".envelope_only";
            string secret        = "secret";
            int    maxAge        = 3600;
            double currentTime   = 1297678642.8070507;

            Assert.Throws <InvalidOperationException>(() => FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true));
        }
コード例 #7
0
        public void DoesNotThrowError()
        {
            var signedRequest = "t63pZQ4Q3ZTHJt0hOsKrY2pb28xRlduW0pg4lL_Zhl4.eyJhbGdvcml0aG0iOiJBRVMtMjU2LUNCQyBITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTI4NzYwMTk4OCwiaXYiOiJmRExKQ1cteWlYbXVOYTI0ZVNhckpnIiwicGF5bG9hZCI6IllHeW00cG9Rbk1UckVnaUFPa0ZUVkk4NWxsNVJ1VWlFbC1JZ3FmeFRPVEhRTkl2VlZJOFk4a1Z1T29lS2FXT2Vhc3NXRlRFdjBRZ183d0NDQkVlbjdsVUJCemxGSjFWNjNISjNBZjBTSW5nY3hXVEo3TDZZTGF0TW13WGdEQXZXbjVQc2ZxeldrNG1sOWg5RExuWXB0V0htREdMNmlCaU9oTjdXeUk3cDZvRXBWcmlGdUp3X2NoTG9QYjhhM3ZHRG5vVzhlMlN4eDA2QTJ4MnhraWFwdmcifQ";

            string secret      = "13750c9911fec5865d01f3bd00bdf4db";
            int    maxAge      = 3600;
            double currentTime = 1287601970;

            Assert.DoesNotThrow(() => FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true));
        }
コード例 #8
0
        public void ErrorMessageShouldBeInvalidSingedRequest(string signedRequestWithMoreThanTwoDots)
        {
            string secret      = "secret";
            int    maxAge      = 3600;
            double currentTime = 1297678642.8070507;

            Exception exception = null;

            try
            {
                FacebookSignedRequest.TryParse(secret, signedRequestWithMoreThanTwoDots, maxAge, currentTime, true);
            }
            catch (InvalidOperationException ex)
            {
                exception = ex;
            }

            Assert.Equal(Properties.Resources.InvalidSignedRequest, exception.Message);
        }
コード例 #9
0
        public void ErrorMessageShouldBeInvalidSingedRequest()
        {
            var signedRequest = "t63pZQ4Q3ZTHJt0hOsKrY2pb28xRlduW0pg4lL_Zhl4.eyJhbGdvcml0aG0iOiJBRVMtMjU2LUNCQyBITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTI4NzYwMTk4OCwiaXYiOiJmRExKQ1cteWlYbXVOYTI0ZVNhckpnIiwicGF5bG9hZCI6IllHeW00cG9Rbk1UckVnaUFPa0ZUVkk4NWxsNVJ1VWlFbC1JZ3FmeFRPVEhRTkl2VlZJOFk4a1Z1T29lS2FXT2Vhc3NXRlRFdjBRZ183d0NDQkVlbjdsVUJCemxGSjFWNjNISjNBZjBTSW5nY3hXVEo3TDZZTGF0TW13WGdEQXZXbjVQc2ZxeldrNG1sOWg5RExuWXB0V0htREdMNmlCaU9oTjdXeUk3cDZvRXBWcmlGdUp3X2NoTG9QYjhhM3ZHRG5vVzhlMlN4eDA2QTJ4MnhraWFwdmcifQ";

            string secret      = "13750c9911fec5865d01f3bd00bdf4db";
            int    maxAge      = 3600;
            double currentTime = 1294741460;

            Exception exception = null;

            try
            {
                FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);
            }
            catch (InvalidOperationException ex)
            {
                exception = ex;
            }

            Assert.Equal(Properties.Resources.OldSignedRequest, exception.Message);
        }
コード例 #10
0
        public void ContainsPayloadKey()
        {
            var result = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);

            Assert.True(result.ContainsKey("payload"));
        }
コード例 #11
0
        public void AlogrithmIsExtractedCorrectly()
        {
            var result = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);

            Assert.Equal("AES-256-CBC HMAC-SHA256", result["algorithm"]);
        }
コード例 #12
0
        public void ResultIsNotNull()
        {
            var result = FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true);

            Assert.NotNull(result);
        }
コード例 #13
0
 public void ShouldNotThrowException()
 {
     Assert.DoesNotThrow(() => FacebookSignedRequest.TryParse(secret, signedRequest, maxAge, currentTime, true));
 }