Exemplo n.º 1
0
 /// <summary>
 /// Navigate to pages.
 /// </summary>
 public void NavigateToPages()
 {
     BAT.Macros().NavigateTo().Pages();
     ActiveBrowser.WaitUntilReady();
     ActiveBrowser.WaitForAsyncOperations();
     ActiveBrowser.RefreshDomTree();
 }
        /// <summary>
        /// Click select button
        /// </summary>
        public void ClickSelectButton()
        {
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncRequests();

            Manager.Wait.For(() => {
                ActiveBrowser.RefreshDomTree();
                return(EM.Widgets.WidgetDesignerContentScreen.SelectButtons.Any(b => b.IsVisible()));
            }, 10000);

            var selectButtons = EM.Widgets.WidgetDesignerContentScreen.SelectButtons;

            foreach (var button in selectButtons)
            {
                if (button.IsVisible())
                {
                    button.Click();
                    break;
                }
            }

            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        public void SetRequiredCheckboxField()
        {
            BAT.Macros().NavigateTo().Modules().Forms(this.Culture);
            BAT.Wrappers().Backend().Forms().FormsDashboard().OpenFormFromTheGrid(FormName);
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
            BATFeather.Wrappers().Backend().Pages().PageZoneEditorWrapper().EditWidget(CheckboxesField);
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().CheckRequiredFieldCheckbox();
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().ChangeRequiredMessage(NewRequiredMessage);
            BATFeather.Wrappers().Backend().Widgets().WidgetDesignerWrapper().SaveChanges();
            BAT.Wrappers().Backend().Forms().FormsContentScreen().PublishForm();

            BAT.Macros().NavigateTo().CustomPage("~/" + PageName.ToLower(), true, this.Culture);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().ClickSubmit();
            Assert.IsTrue(ActiveBrowser.ContainsText(NewRequiredMessage), "Text was not found on the page");
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().VerifyPageUrl(PageName);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().SelectCheckbox(Choice);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().SubmitForm();

            BAT.Macros().NavigateTo().Modules().Forms(this.Culture);
            BAT.Wrappers().Backend().Forms().FormsDashboard().ViewFormResponses(FormName);

            BATFeather.Wrappers().Backend().Forms().FormsWrapper().VerifyNumberOfResponses(ExpectedResponsesCount);
            BAT.Wrappers().Backend().Forms().FormsResponseScreen().SelectResponse(ResponseNumber);
            BATFeather.Wrappers().Backend().Forms().FormsWrapper().VerifyResponseAuthorUsername(ExpectedAuthorName);
            BATFeather.Wrappers().Backend().Forms().FormsWrapper().VerifyResponseSubmitDate();
            BATFeather.Wrappers().Backend().Forms().FormsWrapper().VerifyResponseCheckboxesAnswer(Choice);
        }
        /// <summary>
        /// Selects "an extra option" (option from the 'More' menu)
        /// for a given widget
        /// </summary>
        /// <param name="extraOption">The option to be clicked</param>
        /// <param name="dropZoneIndex">The dropZone(location) of the widget</param>
        public void SelectExtraOptionForWidget(string extraOption, int dropZoneIndex = 0)
        {
            ActiveBrowser.WaitForAsyncOperations();
            Manager.Current.ActiveBrowser.RefreshDomTree();
            var widgetHeader = Manager.Current
                               .ActiveBrowser
                               .Find
                               .AllByCustom <HtmlDiv>(d => d.CssClass.StartsWith("rdTitleBar"))[dropZoneIndex]
                               .AssertIsPresent("Widget at position: " + dropZoneIndex);

            widgetHeader.ScrollToVisible();
            HtmlAnchor moreLink = widgetHeader.Find
                                  .ByCustom <HtmlAnchor>(a => a.TagName == "a" && a.Title.Equals("More"))
                                  .AssertIsPresent("more link");

            moreLink.Focus();
            moreLink.Click();
            ActiveBrowser.WaitForAsyncOperations();
            Manager.Current.ActiveBrowser.RefreshDomTree();
            HtmlDiv menuDiv = ActiveBrowser.Find
                              .ByExpression <HtmlDiv>("tagName=div", "id=RadContextMenu1_detached")
                              .AssertIsPresent <HtmlDiv>("More options menu");

            menuDiv.Find
            .ByCustom <HtmlSpan>(x => x.InnerText.Contains(extraOption))
            .AssertIsPresent <HtmlSpan>("option " + extraOption)
            .Click();
        }
        /// <summary>
        /// Edit widget by name
        /// </summary>
        /// <param name="widgetName">The widget name</param>
        /// <param name="dropZoneIndex">The drop zone index</param>
        public void EditWidget(string widgetName, int dropZoneIndex = 0, bool isMediaWidgetEdited = false)
        {
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.RefreshDomTree();
            ActiveBrowser.WaitUntilReady();
            var widgetHeader = ActiveBrowser
                               .Find
                               .AllByCustom <HtmlDiv>(d => d.CssClass.StartsWith("rdTitleBar") && d.ChildNodes.First().InnerText.Equals(widgetName))[dropZoneIndex]
                               .AssertIsPresent(widgetName);

            widgetHeader.ScrollToVisible();
            HtmlAnchor editLink = widgetHeader.Find
                                  .ByCustom <HtmlAnchor>(a => a.TagName == "a" && a.Title.Equals("Edit"))
                                  .AssertIsPresent("edit link");

            editLink.Focus();
            editLink.Click();
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.WaitForAjax(TimeOut);
            ActiveBrowser.RefreshDomTree();

            if (!isMediaWidgetEdited)
            {
                HtmlFindExpression expression = new HtmlFindExpression("class=modal-title", "InnerText=" + widgetName);
                ActiveBrowser.WaitForElement(expression, TimeOut, false);
                Manager.Current.Wait.For(this.WaitForSaveButton, TimeOut);
            }
        }
        private void OpenTemplateEditor()
        {
            var templateId = BAT.Arrange(this.TestName).ExecuteArrangement("GetTemplateId").Result.Values["templateId"];

            BAT.Macros().NavigateTo().CustomPage("~/Sitefinity/Template/" + templateId, false);
            ActiveBrowser.WaitForAsyncOperations();
        }
        public void ChangeAdvancedSettingsOfPageBreak()
        {
            BAT.Macros().NavigateTo().Modules().Forms(this.Culture);
            BAT.Wrappers().Backend().Forms().FormsDashboard().OpenFormFromTheGrid(FormName);
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().WaitForFieldContent(NextStepOld, PageBreak);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().VerifyNextStepText(NextStepOld);
            BATFeather.Wrappers().Backend().Pages().PageZoneEditorWrapper().EditWidget(PageBreak);
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
            BATFeather.Wrappers().Backend().ModuleBuilder().DynamicWidgetAdvancedSettingsWrapper().ClickAdvancedSettingsButton();
            BATFeather.Wrappers().Backend().ModuleBuilder().DynamicWidgetAdvancedSettingsWrapper().ClickModelButton();
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().ChangeNextStepTextInAdvancedSettings(NextStepNew);
            BATFeather.Wrappers().Backend().ContentBlocks().ContentBlocksWrapper().SaveChanges();
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().WaitForFieldContent(NextStepNew, PageBreak);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().VerifyNextStepText(NextStepNew);
            BAT.Wrappers().Backend().Forms().FormsContentScreen().PublishForm();

            BAT.Macros().NavigateTo().CustomPage("~/" + PageName.ToLower(), true, this.Culture);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().VerifyNextStepText(NextStepNew);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().SetTextboxContent(TextBoxContent);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().ClickNextButton();
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().SelectRadioButton(Choice);
            BATFeather.Wrappers().Frontend().Forms().FormsWrapper().ClickSubmit();
        }
Exemplo n.º 8
0
        public void ChangeAdvancedSettingsOfDropdownFieldAndSetCssClass()
        {
            BAT.Macros().NavigateTo().Modules().Forms(this.Culture);
            BAT.Wrappers().Backend().Forms().FormsDashboard().OpenFormFromTheGrid(FormName);
            BATFeather.Wrappers().Backend().Pages().PageZoneEditorWrapper().EditWidget(DropdownListField);
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().ApplyCssClasses(CssClassesToApply);
            BATFeather.Wrappers().Backend().ContentBlocks().ContentBlocksWrapper().SaveChanges();
            BAT.Wrappers().Backend().Forms().FormsContentScreen().PublishForm();
            BAT.Macros().NavigateTo().CustomPage("~/" + PageName.ToLower(), true, this.Culture);
            Assert.IsTrue(ActiveBrowser.ContainsText(CssClassesToApply), "Css class was not found on the page");

            BAT.Macros().NavigateTo().Modules().Forms(this.Culture);
            BAT.Wrappers().Backend().Forms().FormsDashboard().OpenFormFromTheGrid(FormName);
            BATFeather.Wrappers().Backend().Pages().PageZoneEditorWrapper().EditWidget(DropdownListField);
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
            BATFeather.Wrappers().Backend().ModuleBuilder().DynamicWidgetAdvancedSettingsWrapper().ClickAdvancedSettingsButton();
            BATFeather.Wrappers().Backend().ModuleBuilder().DynamicWidgetAdvancedSettingsWrapper().ClickModelButton();
            BATFeather.Wrappers().Backend().Forms().FormsContentScreenWrapper().ChangeCssClassInAdvancedSettings(CssClassesToApplyNew);
            BATFeather.Wrappers().Backend().ContentBlocks().ContentBlocksWrapper().SaveChanges();
            BAT.Wrappers().Backend().Forms().FormsContentScreen().PublishForm();
            BAT.Macros().NavigateTo().CustomPage("~/" + PageName.ToLower(), true, this.Culture);
            Assert.IsTrue(ActiveBrowser.ContainsText(CssClassesToApplyNew), "Css class was not found on the page");
        }
        /// <summary>
        /// Selects the filter.
        /// </summary>
        /// <param name="filterName">Name of the filter.</param>
        public void SelectFilter(string filterName)
        {
            HtmlAnchor filter = ActiveBrowser.Find.ByExpression <HtmlAnchor>("tagName=a", "class=ng-binding", "InnerText=" + filterName).AssertIsPresent(filterName);

            filter.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Selects the folder from bread crumb.
        /// </summary>
        /// <param name="folderTitle">The folder title.</param>
        public void SelectFolderFromBreadCrumb(string folderTitle)
        {
            HtmlAnchor folder = ActiveBrowser.Find.ByExpression <HtmlAnchor>("class=ng-binding", "innertext=" + folderTitle).AssertIsPresent(folderTitle);

            folder.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Switches to upload mode.
        /// </summary>
        public void SwitchToUploadMode()
        {
            HtmlAnchor uploadImage = this.EM.Media.MediaSelectorScreen.UploadMediaFile.AssertIsPresent("upload image");

            uploadImage.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Dones the resizing.
        /// </summary>
        public void DoneResizing()
        {
            HtmlButton doneBtn = this.EM.Media.ImagePropertiesScreen.DoneResizingButton.AssertIsPresent("Done button");

            doneBtn.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Edits all properties.
        /// </summary>
        public void EditAllProperties()
        {
            HtmlButton editBtn = this.EM.Media.MediaPropertiesBaseScreen.EditAllPropertiesButton.AssertIsPresent("Edit all properties button");

            editBtn.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Clicks Done button on media properties dialog.
        /// </summary>
        public void ConfirmMediaProperties()
        {
            HtmlButton doneBtn = this.EM.Media.MediaPropertiesBaseScreen.DoneButton.AssertIsPresent("Done button");

            doneBtn.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Plays the video.
        /// </summary>
        public void PlayVideo()
        {
            HtmlDiv playBtn = this.EM.Media.VideoPropertiesScreen.PlayButton.AssertIsPresent("Play button");

            playBtn.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
Exemplo n.º 16
0
        /// <summary>
        /// Selects the allow user to reset password checkbox.
        /// </summary>
        public void SelectAllowUserToResetPasswordCheckbox()
        {
            var checkbox = EM.Identity.LoginFormEditScreen.ResetPasswordCheckbox.AssertIsPresent("Allow users to reset password");

            checkbox.Click();

            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 17
0
        /// <summary>
        /// Clicks the select button in registration page section.
        /// </summary>
        public void ClickSelectButtonForRegistrationPage()
        {
            var button = EM.Identity.LoginFormEditScreen.RegistrationPageSelectButton.AssertIsPresent("Select button");

            button.Click();

            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 18
0
        /// <summary>
        /// Selects widget template from the drop-down in the widget designer
        /// </summary>
        /// <param name="templateTitle">widget template title</param>
        public void SelectWidgetListTemplate(string templateTitle)
        {
            var templateSelector = EM.Navigation.NavigationWidgetEditScreen.TemplateSelector
                                   .AssertIsPresent("Template selector drop-down");

            templateSelector.SelectByValue(templateTitle);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.click);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.change);
            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 19
0
        /// <summary>
        /// Selects levels to include from the drop-down in the widget designer
        /// </summary>
        /// <param name="levelsToInclude">Levels to include value</param>
        public void SelectLevelsToInclude(string levelsToInclude)
        {
            var templateSelector = EM.Navigation.NavigationWidgetEditScreen.LevelesToIncludeSelector
                                   .AssertIsPresent("Levels to include selector");

            templateSelector.SelectByValue(levelsToInclude);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.click);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.change);
            ActiveBrowser.WaitForAsyncOperations();
        }
        /// <summary>
        /// Clicks Done button on media properties dialog for docs. This is temporary fix!
        /// </summary>
        public void ConfirmMediaPropertiesDocsTemporary()
        {
            HtmlButton doneBtn = ActiveBrowser.Find
                                 .ByExpression <HtmlButton>("tagName=button", "InnerText=Insert this file")
                                 .AssertIsPresent("Insert this file");

            doneBtn.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Navigates to validation section.
        /// </summary>
        /// <param name="sectionNames">The section names.</param>
        public void NavigateToValidationSectionInAdvancedSettings(string[] sectionNames)
        {
            RuntimeSettingsModificator.ExecuteWithClientTimeout(1600000, () => BAT.Macros().NavigateTo().CustomPage("~/Sitefinity/Administration/Settings/Advanced", false));
            ActiveBrowser.WaitForAsyncOperations();

            for (int i = 0; i < sectionNames.Length; i++)
            {
                BAT.Wrappers().Backend().Settings().SettingsWrapper().OpenSectionInAdvancedSettings(sectionNames[i]);
            }
        }
        /// <summary>
        /// Selects the settings tab in form widget.
        /// </summary>
        public void SelectSettingsTabInFormWidget()
        {
            HtmlAnchor settingsTab = EM.Forms.FormsBackend.SettingsTabInFormWidget
                                     .AssertIsPresent("Settings tab");

            settingsTab.Click();

            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.WaitUntilReady();
        }
Exemplo n.º 23
0
        /// <summary>
        /// Confirms the image properties in image widget.
        /// </summary>
        public void ConfirmMediaPropertiesInWidget()
        {
            HtmlButton saveBtn = this.EM.Media.MediaPropertiesBaseScreen.SaveButtonInMediaWidget.AssertIsPresent("Done button");

            saveBtn.Click();
            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.WaitForAjax(10000);
            ActiveBrowser.RefreshDomTree();
        }
Exemplo n.º 24
0
        /// <summary>
        /// Selects naviagtion widget template from the drop-down in the widget designer
        /// </summary>
        /// <param name="templateTitle">widget template title</param>
        public void SelectNavigationTemplate(string templateTitle)
        {
            var templateSelector = EM.Forms.FormsBackend.NavigationTemplateSelector
                                   .AssertIsPresent("Template selector drop-down");

            templateSelector.SelectByValue(templateTitle);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.click);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.change);
            ActiveBrowser.WaitForAsyncOperations();
        }
        /// <summary>
        /// Click select button
        /// </summary>
        public void ClickSelectButton()
        {
            HtmlButton selectButton = EM.ScriptsAndStyles.ScriptsAndStylesEditScreen.SelectButton
                                      .AssertIsPresent("Select button");

            selectButton.Click();

            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Selects the folder.
        /// </summary>
        /// <param name="folderTitle">The folder title.</param>
        public void SelectFolder(string folderTitle)
        {
            var allFolders = this.EM.Media.MediaSelectorScreen.MediaFolderDivs;
            var folder     = allFolders.Where(i => i.InnerText.Contains(folderTitle)).FirstOrDefault();

            folder.ScrollToVisible();
            folder.Focus();
            folder.MouseClick();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }
        /// <summary>
        /// Selects the read template.
        /// </summary>
        /// <param name="templateTitle">The template title.</param>
        public void SelectReadTemplate(string templateTitle)
        {
            HtmlAnchor moreOptions = this.EM.Widgets.WidgetDesignerContentScreen.MoreOptionsDiv.AssertIsPresent("More options span");

            moreOptions.Click();

            var templateSelector = EM.Forms.FormsBackend.ReadTemplateSelector
                                   .AssertIsPresent("Template selector drop-down");

            templateSelector.SelectByValue(templateTitle);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.click);
            templateSelector.AsjQueryControl().InvokejQueryEvent(jQueryControl.jQueryControlEvents.change);
            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 28
0
        /// <summary>
        /// Remove css class in the widget designer
        /// </summary>
        public void RemoveCSSClass()
        {
            HtmlInputText input = EM.Navigation.NavigationWidgetEditScreen.CSSClass
                                  .AssertIsPresent("Css class");

            input.ScrollToVisible();
            input.Focus();

            Manager.Current.Desktop.KeyBoard.KeyDown(System.Windows.Forms.Keys.Control);
            Manager.Current.Desktop.KeyBoard.KeyPress(System.Windows.Forms.Keys.A);
            Manager.Current.Desktop.KeyBoard.KeyUp(System.Windows.Forms.Keys.Control);
            Manager.Current.Desktop.KeyBoard.KeyPress(System.Windows.Forms.Keys.Delete);

            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 29
0
        /// <summary>
        /// Clicks the select button in registration page section.
        /// </summary>
        public void ClickSelectButtonForRegistrationPage()
        {
            Manager.Current.Wait.For(() =>
            {
                ActiveBrowser.RefreshDomTree();
                return(EM.Identity.LoginFormEditScreen.RegistrationPageSelectButton != null);
            }, 10000);

            var button = EM.Identity.LoginFormEditScreen.RegistrationPageSelectButton.AssertIsPresent("Select button");

            button.Click();

            ActiveBrowser.WaitUntilReady();
            ActiveBrowser.WaitForAsyncOperations();
        }
Exemplo n.º 30
0
        /// <summary>
        /// Selects the content.
        /// </summary>
        /// <param name="selector">Selector name.</param>
        public void SelectContent(string selector)
        {
            var contentSelector = this.GetContentSelectorByName(selector)
                                  .As <HtmlControl>()
                                  .AssertIsPresent("selector directive");

            HtmlButton selectButton = contentSelector.Find
                                      .ByAttributes("class=~openSelectorBtn")
                                      .As <HtmlButton>()
                                      .AssertIsPresent("select button");

            selectButton.Click();
            ActiveBrowser.WaitForAsyncOperations();
            ActiveBrowser.RefreshDomTree();
        }