Exemplo n.º 1
0
 public ExternalLogin(
     HttpClient client,
     IHtmlDocument externalLogin,
     DefaultUIContext context)
     : base(client, externalLogin, context)
 {
     _emailForm = HtmlAssert.HasForm(Document);
 }
Exemplo n.º 2
0
 public TwoFactorAuthentication(HttpClient client, IHtmlDocument twoFactor, DefaultUIContext context)
     : base(client, twoFactor, context)
 {
     if (!Context.TwoFactorEnabled)
     {
         _enableAuthenticatorLink = HtmlAssert.HasLink("#enable-authenticator", twoFactor);
     }
 }
Exemplo n.º 3
0
 public Index(HttpClient client, IHtmlDocument manage, HtmlPageContext context)
     : base(client, manage, context)
 {
     _profileLink        = HtmlAssert.HasLink("#profile", manage);
     _changePasswordLink = HtmlAssert.HasLink("#change-password", manage);
     _twoFactorLink      = HtmlAssert.HasLink("#two-factor", manage);
     _personalDataLink   = HtmlAssert.HasLink("#personal-data", manage);
 }
 public TwoFactorAuthentication(HttpClient client, IHtmlDocument twoFactor, HtmlPageContext context, bool twoFactorEnabled)
     : base(client, twoFactor, context)
 {
     _twoFactorEnabled = twoFactorEnabled;
     if (!_twoFactorEnabled)
     {
         _enableAuthenticatorLink = HtmlAssert.HasLink("#enable-authenticator", twoFactor);
     }
 }
Exemplo n.º 5
0
 public EnableAuthenticator(
     HttpClient client,
     IHtmlDocument enableAuthenticator,
     DefaultUIContext context)
     : base(client, enableAuthenticator, context)
 {
     Assert.True(Context.UserAuthenticated);
     _codeElement  = HtmlAssert.HasElement("kbd", enableAuthenticator);
     _sendCodeForm = HtmlAssert.HasForm("#send-code", enableAuthenticator);
 }
Exemplo n.º 6
0
 public ResetAuthenticator(
     HttpClient client,
     IHtmlDocument resetAuthenticator,
     DefaultUIContext context)
     : base(client, resetAuthenticator, context)
 {
     Assert.True(Context.UserAuthenticated);
     _resetAuthenticatorForm   = HtmlAssert.HasForm("#reset-authenticator-form", resetAuthenticator);
     _resetAuthenticatorButton = HtmlAssert.HasElement("#reset-authenticator-button", resetAuthenticator);
 }
 public Register(HttpClient client, IHtmlDocument register, DefaultUIContext context)
     : base(client, register, context)
 {
     _registerForm = HtmlAssert.HasForm("#registerForm", register);
     if (context.ContosoLoginEnabled)
     {
         _externalLoginForm = HtmlAssert.HasForm("#external-account", register);
         _contosoButton     = HtmlAssert.HasElement("button[value=Contoso]", register);
     }
 }
Exemplo n.º 8
0
    internal static async Task <ResetPasswordConfirmation> ResetPasswordAsync(HttpClient client, IdentityEmail resetPasswordEmail, string email, string newPassword)
    {
        var emailBody   = HtmlAssert.IsHtmlFragment(resetPasswordEmail.Body);
        var linkElement = HtmlAssert.HasElement("a", emailBody);
        var link        = Assert.IsAssignableFrom <IHtmlAnchorElement>(linkElement);

        var resetPassword = await ResetPassword.CreateAsync(link, client, new DefaultUIContext().WithExistingUser());

        return(await resetPassword.SendNewPasswordAsync(email, newPassword));
    }
Exemplo n.º 9
0
 public ExternalLogin(
     HttpClient client,
     IHtmlDocument externalLogin,
     DefaultUIContext context)
     : base(client, externalLogin, context)
 {
     _emailForm  = HtmlAssert.HasForm(Document);
     Title       = HtmlAssert.HasElement("#external-login-title", Document);
     Description = HtmlAssert.HasElement("#external-login-description", Document);
 }
Exemplo n.º 10
0
    internal static async Task <ConfirmEmail> ConfirmEmailAsync(IdentityEmail email, HttpClient client)
    {
        var emailBody   = HtmlAssert.IsHtmlFragment(email.Body);
        var linkElement = HtmlAssert.HasElement("a", emailBody);
        var link        = Assert.IsAssignableFrom <IHtmlAnchorElement>(linkElement);

        return(await ConfirmEmail.Create(link, client, new DefaultUIContext()
                                         .WithAuthenticatedUser()
                                         .WithExistingUser()
                                         .WithConfirmedEmail()));
    }
Exemplo n.º 11
0
        public void StyleAttributeSanitizationInOneHtmlElement()
        {
            // Arrange
            const string TestName = "StyleAttributeSanitizationInOneHtmlElement";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 12
0
        public void YouTubeVideoSanitizationWithOtherNotAllowedAttributes()
        {
            // Arrange
            const string TestName = "YouTubeVideoSanitizationWithOtherNotAllowedAttributes";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
        public void ScriptElementSanitizationWithOneScriptTag()
        {
            // Arrange
            const string TestName = "ScriptElementSanitizationWithOneScriptTag";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
        public void JavaScriptRelatedAttribute()
        {
            // Arrange
            const string TestName = "JavaScriptRelatedAttributeSanitization";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 15
0
        public void ImageSanitizationWithStyleVisibilityHidden()
        {
            // Arrange
            const string TestName = "ImageSanitizationWithStyleVisibilityHidden";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 16
0
        public void ImageSanitizationWithoutImageSizesAndWithAbsoluteUrl()
        {
            // Arrange
            const string TestName = "ImageSanitizationWithoutImageSizesAndWithAbsoluteUrl";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 17
0
        public void YouTubeVideoSanitizationWithStyleDisplayNone()
        {
            // Arrange
            const string TestName = "YouTubeVideoSanitizationWithStyleDisplayNone";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
        public void HrefJavaScriptSanitizationWithJavaScriptValue()
        {
            // Arrange
            const string TestName = "HrefJavaScriptSanitizationWithJavaScriptValue";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 19
0
        public void TargetAttributeSanitizationWithBlankValue()
        {
            // Arrange
            const string TestName = "TargetAttributeSanitizationWithBlankValue";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 20
0
        public void AudioSanitizationWithControls()
        {
            // Arrange
            const string TestName = "AudioSanitizationWithControls";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 21
0
        public ExternalLogins(HttpClient client, IHtmlDocument externalLoginDocument, DefaultUIContext context)
            : base(client, externalLoginDocument, context)
        {
            if (context.SocialLoginProvider != null && context.PasswordLoginEnabled)
            {
                RemoveExternalLogin = HtmlAssert.HasForm("#remove-login-Contoso", Document);
            }

            if (context.SocialLoginProvider != null)
            {
                ExternalLoginDisplayName = HtmlAssert.HasElement("#login-provider-Contoso", Document);
            }
        }
Exemplo n.º 22
0
        public ExternalLogin(
            HttpClient client,
            IHtmlDocument externalLogin,
            DefaultUIContext context)
            : base(client, externalLogin, context)
        {
            _emailForm = HtmlAssert.HasForm(Document);
            var title = externalLogin.GetElementsByTagName("h4").FirstOrDefault(e => e.TextContent.StartsWith("Associate your"));

            Assert.Equal("Associate your Contoso auth account.", title?.TextContent);
            var info = externalLogin.QuerySelectorAll <IHtmlParagraphElement>(".text-info").FirstOrDefault(e => e.TextContent.Trim().StartsWith("You've successfully authenticated"));

            Assert.StartsWith("You've successfully authenticated with Contoso auth.", info?.TextContent.Trim());
        }
Exemplo n.º 23
0
    public Email(HttpClient client, IHtmlDocument manage, DefaultUIContext context)
        : base(client, manage, context)
    {
        Assert.True(Context.UserAuthenticated);

        _changeEmailForm   = HtmlAssert.HasForm("#email-form", manage);
        _emailInput        = HtmlAssert.HasElement("#Email", manage);
        _newEmailInput     = HtmlAssert.HasElement("#Input_NewEmail", manage);
        _changeEmailButton = HtmlAssert.HasElement("#change-email-button", manage);
        if (!Context.EmailConfirmed)
        {
            _confirmEmailButton = HtmlAssert.HasElement("button#email-verification", manage);
        }
    }
Exemplo n.º 24
0
 public Login(
     HttpClient client,
     IHtmlDocument login,
     DefaultUIContext context)
     : base(client, login, context)
 {
     _loginForm          = HtmlAssert.HasForm("#account", login);
     _forgotPasswordLink = HtmlAssert.HasLink("#forgot-password", login);
     if (Context.ContosoLoginEnabled)
     {
         _externalLoginForm = HtmlAssert.HasForm("#external-account", login);
         _contosoButton     = HtmlAssert.HasElement("button[value=Contoso]", login);
     }
 }
Exemplo n.º 25
0
        public void IFrameSanitizationWithSourceHostNotEqualToContainerHost()
        {
            // Arrange
            const string TestName = "IFrameSanitizationWithSourceHostNotEqualToContainerHost";

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(new RunConfiguration {
                RelativeUrlsHost = "http://different-domain.com"
            }, TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 26
0
        public void ImageSanitizationWithoutImageSizesAndShouldNotDownloadImages()
        {
            // Arrange
            const string TestName      = "ImageSanitizationWithoutImageSizesAndShouldNotDownloadImages";
            var          configuration = new RunConfiguration {
                ShouldDownloadImages = false
            };

            // Act
            var actualResult = HtmlTestFileToAmpConverter.Convert(configuration, TestName);

            // Assert
            HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult);
            AmpAssert.IsValidAmp(TestName);
        }
Exemplo n.º 27
0
 public RegisterConfirmation(
     HttpClient client,
     IHtmlDocument register,
     DefaultUIContext context)
     : base(client, register, context)
 {
     if (Context.HasRealEmailSender)
     {
         Assert.Empty(Document.QuerySelectorAll("#confirm-link"));
     }
     else
     {
         _confirmLink = HtmlAssert.HasLink("#confirm-link", Document);
     }
 }
Exemplo n.º 28
0
        public Index(HttpClient client, IHtmlDocument manage, DefaultUIContext context)
            : base(client, manage, context)
        {
            Assert.True(Context.UserAuthenticated);

            _profileLink        = HtmlAssert.HasLink("#profile", manage);
            _changePasswordLink = HtmlAssert.HasLink("#change-password", manage);
            _twoFactorLink      = HtmlAssert.HasLink("#two-factor", manage);
            _personalDataLink   = HtmlAssert.HasLink("#personal-data", manage);
            _updateProfileForm  = HtmlAssert.HasForm("#profile-form", manage);
            if (!Context.EmailConfirmed)
            {
                _confirmEmailButton = HtmlAssert.HasElement("button#email-verification", manage);
            }
        }
Exemplo n.º 29
0
 public Index(
     HttpClient client,
     IHtmlDocument index,
     DefaultUIContext context)
     : base(client, index, context)
 {
     if (!Context.UserAuthenticated)
     {
         _registerLink = HtmlAssert.HasLink("#register", Document);
         _loginLink    = HtmlAssert.HasLink("#login", Document);
     }
     else
     {
         _manageLink = HtmlAssert.HasLink("#manage", Document);
     }
 }
Exemplo n.º 30
0
        public Index(HttpClient client, IHtmlDocument manage, DefaultUIContext context)
            : base(client, manage, context)
        {
            Assert.True(Context.UserAuthenticated);

            _profileLink        = HtmlAssert.HasLink("#profile", manage);
            _emailLink          = HtmlAssert.HasLink("#email", manage);
            _changePasswordLink = HtmlAssert.HasLink("#change-password", manage);
            _twoFactorLink      = HtmlAssert.HasLink("#two-factor", manage);
            if (Context.ContosoLoginEnabled)
            {
                _externalLoginLink = HtmlAssert.HasLink("#external-login", manage);
            }
            _personalDataLink    = HtmlAssert.HasLink("#personal-data", manage);
            _updateProfileForm   = HtmlAssert.HasForm("#profile-form", manage);
            _userNameInput       = HtmlAssert.HasElement("#Username", manage);
            _updateProfileButton = HtmlAssert.HasElement("#update-profile-button", manage);
        }