Ejemplo n.º 1
0
        public void CaptchaProxy__Valid_CaptchaProxyType()
        {
            const string address    = "127.0.0.1:8080";
            var          proxyTypes = Enum.GetValues(typeof(CaptchaProxyType)).Cast <CaptchaProxyType>().ToArray();

            // Using ProxyType via CaptchaProxyType
            foreach (var proxyType in proxyTypes)
            {
                var cp = new CaptchaProxy(proxyType, address);
                Assert.AreNotEqual(default(CaptchaProxy), cp);
                Assert.AreEqual(proxyType, cp.Type);
                Assert.AreEqual(address, cp.Address);
                Assert.IsTrue(cp.IsValid);
            }

            // Using ProxyType via string
            foreach (var proxyType in proxyTypes)
            {
                string proxyTypeStr = proxyType.ToString();

                var cp = new CaptchaProxy(proxyTypeStr, address);
                Assert.AreNotEqual(default(CaptchaProxy), cp);
                Assert.AreEqual(proxyTypeStr, cp.Type.ToString());
                Assert.AreEqual(address, cp.Address);
                Assert.IsTrue(cp.IsValid);
            }

            // Check ProxyType via string when it's invalid
            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy("UnknownProxyType", address);
            });
        }
Ejemplo n.º 2
0
        public void CaptchaProxy__Default()
        {
            var cp = new CaptchaProxy();

            Assert.AreEqual(default(CaptchaProxy), cp);
            Assert.IsNull(cp.Address);
            Assert.IsFalse(cp.IsValid);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> GatedFormMarkup(FormCollection formCollection)
        {
            GatedContentLogger.Log.Info("[HttpPost] GatedFormMarkup Hit");

            ActionResult toReturn = null;

            var formRelayer = new FormRelayer(formCollection, ModelState.IsValid);

            var captchaDataModel   = new GatedFormDataModel(CaptchaGateSettings, formRelayer.GateItemIdStr);
            var gatedFormViewModel = captchaDataModel.GetViewModel();

            if (formRelayer.DataIsValid && gatedFormViewModel.DataSourceItemProxy.IsValidForRendering)
            {
                formRelayer.TestingFormFormSubmitFail = gatedFormViewModel.DataSourceItemProxy.TestSettings.TestingForceFormSubmitFail;

                var CaptchaTestSettings = new CaptchaTestSettings(
                    gatedFormViewModel.DataSourceItemProxy.TestSettings.TestingForceCaptchaFail,
                    gatedFormViewModel.DataSourceItemProxy.TestSettings.TestingForceCaptchaSuccess
                    );

                var captchaProxy = new CaptchaProxy(
                    formRelayer[FormsConstants.RecaptchaV3.TokenElemId],
                    CaptchaGateSettings.CaptchaV3EnvironmentSettings,
                    CaptchaTestSettings
                    );

                if (await captchaProxy.IsCaptchaValid())
                {
                    toReturn = await GetActionForCaptchaPass(formRelayer, gatedFormViewModel, gatedFormViewModel.FormProxy);
                }
                else
                {
                    toReturn = new RedirectResult(gatedFormViewModel.DataSourceItemProxy.OnCaptchFailUrlFriendly);;
                }
            }
            else
            {
                if (!formRelayer.DataIsValid)
                {
                    GatedContentLogger.Error("formCollection data is invalid", this);
                }

                if (!gatedFormViewModel.DataSourceItemProxy.IsValidForRendering)
                {
                    GatedContentLogger.Error("DataSourceProxy is invalid", this);
                }
            }
            return(toReturn);
        }
Ejemplo n.º 4
0
        public void CaptchaProxy__Invalid_Address()
        {
            const CaptchaProxyType type = CaptchaProxyType.HTTPS;

            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy(type, null);
            });

            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy(type, string.Empty);
            });

            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy(type, "127.0.0.1");
            });

            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy(type, "127.0.0.1:");
            });

            Assert.ThrowsException <ArgumentException>(() => {
                var cp = new CaptchaProxy(type, "127.0.0.1:8");
            });
        }
Ejemplo n.º 5
0
        public void CaptchaProxy__Default()
        {
            var cp = new CaptchaProxy();

            Assert.Equal(default, cp);