public void GivenEditAGeneralCorresopndenceDescription(String correspondenceName, Table correspondenceTable) { try { TableRow CorrespondenceRow = correspondenceTable.Rows[0]; correspondenceName += uniqueStamp; //The unique stamp is a series of numbers to keep names different from each other if (CorrespondenceRow.Keys.Contains("Name") && (!String.IsNullOrEmpty(CorrespondenceRow["Name"]))) { CorrespondenceRow["Name"] += uniqueStamp; } BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Manage correspondence']"; Panel.WaitClick(xPathLink, 50); // click on the General correspondence link} Panel.SelectSectionDatalistRow(CorrespondenceRow, "UNC Correspondence processes"); //find the correct row which has the correct general correspondence process Panel.WaitClick(Panel.getXSelectedDatalistRowButton("Edit")); Dialog.SetTextField("//input[contains(@id,'_DESCRIPTION_value')]", "Test Desc Edited Now"); //change the desc. Dialog.SetTextField("//textarea[contains(@id,'_COMMENTS_value')]", "This is an edited comment for " + DateTime.Today.ToShortDateString()); //change the comment } catch (Exception ex) { if (UserName != "bbtest2.gst") { throw new Exception("Error: could not edit a general correspondence. " + ex.Message); } } }
public void WhenISearchForAExclusionSelection(string selection) { IWebElement statusElement = null; try { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Selections']"; Panel.WaitClick(xPathLink, 20); // click on the selections link xPathLink = "//button[contains(@class,'bui-linkbutton')]/div[text()='Selection search']"; Panel.WaitClick(xPathLink, 20); // click on the selection search link string xSearchPath = "//*[contains(@class,'bbui-dialog-search') and not(contains(@style,'hidden'))]//*[starts-with(@id, 'ctrl_') and contains(@id, '_NAME_value')]"; Dialog.SetTextField(xSearchPath, selection); Dialog.ClickButton("Search", 30); string xPath = "//div[contains(@class,'x-grid-empty')and text()='No records found']"; // use x-grid-empty class to see if there was a result. statusElement = Panel.GetDisplayedElement(xPath, 15); Dialog.Cancel(); } catch (Exception ex) { if (statusElement != null) { throw new Exception("Error: Could not search for an exclusion. " + ex.Message); } else { throw new Exception("Error: the exclusion already exists. " + ex.Message); } } }
public void ThenAppealMailingsTabAppealMailingListShows(string Appeal, Table table) { //Verify Appeal Mailing data displays correctly on Appeal //select M&C BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open Appeal Search MarketingAndCommFunctionalArea.OpenLink("Appeal", "Appeal search"); //search for Appeal in Name field Dialog.SetTextField("//input[contains(@id,'_NAME_value')]", Appeal + uniqueStamp); //click Search button Dialog.ClickButton("Search"); //Select correct result in grid SearchDialog.SelectFirstResult(); //select Mailings tab Panel.SelectTab("Mailings"); //set data to match data list TableRow tableRow = table.Rows[0]; tableRow["Name"] += uniqueStamp; tableRow["Package"] += uniqueStamp; tableRow["Selection"] += uniqueStamp + " (Ad-hoc Query)"; StepHelper.SetTodayDateInTableRow("Mail date", tableRow); if ((Panel.SectionDatalistRowExists(table.Rows[0], "Appeal mailings") == false)) { throw new Exception("ThenAppealMailingsTabAppealMailingListShows grid not correct!"); } }
public void GivenSegmentDoesNotExistWithActivatedMarketingEffortUsingPackage(string segmentName, string template) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Segments(); IDictionary <string, string> segmentRow = new Dictionary <string, string> { { "Segment", segmentName } }; if (SegmentsPanel.SegmentExists(segmentRow)) { SegmentsPanel.GoToSegment(segmentRow); } else { return; } IDictionary <string, string> effort = new Dictionary <string, string> { { "Marketing effort", template } }; if (SegmentPanel.ActivatedMarketingEffortExists(effort)) { SegmentPanel.DeleteActivatedMarketingEffort(template); BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Segments(); SegmentsPanel.GoToSegment(segmentRow); } SegmentPanel.DeleteSegment(); }
public void GivenAMailPackageExistsWith(Table packages) { foreach (var package in packages.Rows) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Packages(); IDictionary <string, string> packageRow = new Dictionary <string, string> { { "Channel", "Mail" } }; if (package.ContainsKey("Name") && package["Name"] != string.Empty) { packageRow.Add("Name", package["Name"]); } if (package.ContainsKey("Letter") && package["Letter"] != string.Empty) { packageRow.Add("Content", package["Letter"]); } if (PackagesPanel.PackageExists(packageRow)) { PackagesPanel.DeletePackage(packageRow); } PackagesPanel.AddMailPackage(); PackageDialog.SetFields(package); Dialog.Save(); } }
public void WhenICreateAMarketingEffort(string marketingName) { try { marketingName += uniqueStamp; //The unique stamp is a series of numbers to keep names different from each other BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Direct marketing efforts']"; Panel.WaitClick(xPathLink, 50); // click on the Direct Marketing Efforts link Panel.ClickSectionAddButton("Direct marketing efforts"); // click on Direct marketing effots link string xPath = "//div[contains(@id,'_TEMPLATES_value')]//div[text()='ACK FYXX E-Mail Marketing Effort Template']"; Dialog.WaitClick(xPath, 45); // select the template: 'ACK FYXX E-Mail Marketing Effort Template' Dialog.ClickButton("Next", 30); //input values into the create effort fields Dialog.SetTextField("//input[contains(@id,'_FREEFORMPART_value')]", marketingName); Dialog.SetTextField("//textarea[contains(@id,'_EFFORTDESCRIPTION_value')]", "Test Desc"); Dialog.SetTextField("//input[contains(@id,'EFFORTSITEID_value')]", "Ackland Art Museum"); Dialog.SetSearchList(Dialog.getXInput("_CREATEEFFORTTAB_caption_tab", "_INDIVIDUALAPPEAL_value"), Dialog.getXInput("_AppealSearch", "_NAME_value"), "17Y - 1/12 Appeal Former Charlotte"); Dialog.SetTextField("//input[contains(@id,'_EFFORTLAUNCHDATE_value')]", "11/17/2017"); Dialog.Save(); // Save the fields } catch (Exception exc) { throw new Exception("Error: could not create a marketing effort. " + exc.ToString()); } }
public void GivenMarketingExportDefinitionsExists(string ExportName) { //in this instance we cannot use the default XpathHelper one var visibleDialog = "//div[contains(@class,'x-window x-resizable-pinned') and contains(@style,'visible')]"; ExportName += uniqueStamp; //navigate BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.OpenLink("Packages", "Export definitions"); BaseComponent.GetEnabledElement( "//div[contains(@class,'xtb-text bbui-pages-section-tbarcaption') and ./text()='Marketing export definitions']"); //click Add Panel.ClickSectionAddButton("Marketing export definitions"); BaseComponent.WaitClick( "//div[contains(@class, 'x-menu x-menu-floating x-layer') and contains(@style, 'visible')]//span[./text()='Direct marketing']"); //click save tab Dialog.WaitClick("//span[contains(@class,'x-tab-strip-text') and ./text()='Set save options']"); //set name field ExportDefinitionDialog.SetTextField(visibleDialog + "//input[contains(@id,'_NAME_value')]", ExportName); //give the "save and close" button validation time to catch up ExportDefinitionDialog.SetTextField(visibleDialog + "//textarea[contains(@id,'_DESCRIPTION_value')]", ExportName); ExportDefinitionDialog.SetTextField(visibleDialog + "//textarea[contains(@id,'_DESCRIPTION_value')]", ExportName); ExportDefinitionDialog.SetTextField(visibleDialog + "//textarea[contains(@id,'_DESCRIPTION_value')]", ExportName); ExportDefinitionDialog.SaveAndClose(); }
public void WhenIAddSelectionAd_HocQueryType(string selection) { try { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //open the analysis functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Selections']"; Panel.WaitClick(xPathLink, 20); // click on the selections link xPathLink = "//button[contains(@class,'bui-linkbutton')]/div[text()='Add a selection']"; Panel.WaitClick(xPathLink, 20); // click on the selections link //string querystring = "//button[./text() = 'Add an ad-hoc query']"; //Panel.WaitClick(querystring, 10); //click on the "ad-hoc query" button string queryType = "Constituent"; Dialog.SetDropDown(Dialog.getXInput("AdHocQueryNewForm", "RECORDTYPE_value"), queryType); //start the adhoc query for the selected querytype string gridRowXPath = ""; gridRowXPath = "//div[contains(@id,'AdHocQueryNewForm')]//div[contains(@id, 'GROUPTYPE-Constituent-bd')]/div[3]/table"; Panel.WaitClick(gridRowXPath, 20); //click on that row Panel.WaitClick(Dialog.getXOKButton, 20); } catch (Exception ex) { throw new Exception("Error: could not add an adhoc query. " + ex.Message); } }
public void GivenAddAConstituentSegment(string segmentName) { segmentName += uniqueStamp; //The unique stamp is a series of numbers to keep names different from each other BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Segments']"; Panel.WaitClick(xPathLink, 50); // click on the Segments link Panel.ClickSectionAddButton("Segments"); //click on the Segments link Panel.WaitClick(getXMenuItem("Constituent segment")); //add a new Constituent segment AddSegment(segmentName); }
public void GivenAppealExists(string AppealName) { AppealName += uniqueStamp; //Navigate to Marketing and Communication BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Add Appeal MarketingAndCommFunctionalArea.OpenLink("Appeal", "Add an appeal"); Dialog.SetTextField(Dialog.getXInput("AppealAddForm", "NAME"), AppealName); Dialog.SetTextField(Dialog.getXTextArea("AppealAddForm", "DESCRIPTION"), AppealName); Dialog.Save(); }
public void ThenAMarketingAcknowledgementTemplateExists(Table templates) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.MarketingAcknowledgements(); foreach (var template in templates.Rows) { if (!MarketingAcknowledgementsPanel.TemplateExists(template)) { throw new ArgumentException(String.Format("Template '{0}' does not exist.", template.Values)); } } }
public void GivenSegmentExistsWithSelection(string segmentType, string selection, Table detailsFields) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Segments(); SegmentsPanel.AddSegment(segmentType); foreach (var detailsFieldRow in detailsFields.Rows) { SegmentDialog.SetDetailsFields(detailsFieldRow); } SegmentDialog.AddSelection(selection); Dialog.Save(); }
public void GivenMarketingAcknowledgementTemplateDoesNotExist(Table templates) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.MarketingAcknowledgements(); foreach (var template in templates.Rows) { if (MarketingAcknowledgementsPanel.TemplateExists(template)) { MarketingAcknowledgementsPanel.DeleteTemplate(template); } } }
public void WhenICreateAReceiptProcess(Table receipts) { foreach (var receipt in receipts.Rows) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Receipts(); if (receipt.ContainsKey("Name") && !string.IsNullOrEmpty(receipt["Name"])) { receipt["Name"] += uniqueStamp; } ReceiptsPanel.AddReceipt(receipt); } }
public void GivenStartTheReminderProcess() { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); // open the marketing & commun. functional area //click on the reminders link try { Panel.WaitClick("//button[contains(@class,'bbui-linkbutton bbui-pages-task-link')]/div[text()='Reminders']", 20); Panel.OpenTab("Reminders"); } catch (Exception ex) { throw new Exception("Error: could not start the reminder process. " + ex.Message); } }
public void GivenPackageExists(Table packages) { foreach (var package in packages.Rows) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Packages(); if (PackagesPanel.PackageExists(package)) { continue; } PackagesPanel.AddMailPackage(); PackageDialog.SetFields(package); } }
public void GivenCreateAnEmailPackage(string emailPackageName) { try { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area Dialog.WaitClick("//button[contains(@class,'bbui-linkbutton')]/div[text()='Packages']", 30); // start the assign letters process Dialog.WaitClick("//button[contains(@class,'bbui-linkbutton')]/div[text()='Add an email package']", 30); // start the assign letters process AddEmailPackage(emailPackageName); System.Threading.Thread.Sleep(9000); //allow some time for the process to actually run. } catch (Exception exc) { throw new Exception("Error: could not create an email package. " + exc.Message); } }
public void WhenRunReceiptProcess(Table receiptProcesses) { foreach (var receiptProcess in receiptProcesses.Rows) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.Receipts(); if (receiptProcess.ContainsKey("Name") && !string.IsNullOrEmpty(receiptProcess["Name"])) { receiptProcess["Name"] += uniqueStamp; } ReceiptsPanel.RunReceiptProcess(receiptProcess); if (!ReceiptBusinessProcess.IsCompleted()) { throw new Exception("Process ran with exceptions or errors."); } } }
public void GivenSetupAnAcknowledgement(string processName) { try { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Acknowledgements']"; Panel.WaitClick(xPathLink, 50); // click on the Acknowledgements link Panel.SelectTab("Letters"); //select Letters tab string xPath = "//div[contains (@title, '" + processName + "')]/a[./text()='" + processName + "']"; Panel.WaitClick(xPath, 15); // click on the selected anchor link according to the xPath above. } catch (Exception ex) { throw new Exception("Error: could not setup an acknowledgement. " + ex.Message); } }
public void GivenSetupAGeneralCorrespondence(string correspondenceName) { try { int rowCount = 1; string formName = "_BusinessProcessCommPrefForm"; correspondenceName += uniqueStamp; //The unique stamp is a series of numbers to keep names different from each other BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Manage correspondence']"; Panel.WaitClick(xPathLink, 50); // click on the General correspondence link} // set fields on the add correspondence dialog box Panel.ClickSectionAddButton("UNC Correspondence processes"); Dialog.SetTextField("//input[contains(@id,'_NAME_value')]", correspondenceName); Dialog.SetTextField("//input[contains(@id,'_DESCRIPTION_value')]", "Test Desc"); Dialog.SetDropDown("//input[contains(@id,'_OUTPUTTYPE_value')]", "Export definition"); Dialog.SetSearchList(Dialog.getXInput("_CorrespondenceProcessAddForm3", "_EXPORTDEFINITIONID_value"), Dialog.getXInput("_ExportDefinitionSearch2", "_NAME_value"), "UDO FYXX Special Events Export Definition"); Dialog.SetSearchList(Dialog.getXInput("_CorrespondenceProcessAddForm3", "_IDSETREGISTERID_value"), Dialog.getXInput("_SelectionSearch", "_NAME_value"), "UDO FY17 McCleery Prospects"); Dialog.SetCheckbox("//input[contains(@id,'_UPDATECONSTITUENTRECORD_value')]", true); Dialog.SetDropDown("//input[contains(@id,'_CORRESPONDENCECODEID_value')]", "UDO-General Correspondence"); Dialog.SetTextField("//textarea[contains(@id,'_COMMENTS_value')]", "This is a general correspondence comment for " + DateTime.Today.ToShortDateString()); //ad exclusions Dialog.ClickButton("Exclusions", 50); string gridXPath = Dialog.getXGridCell("dataformdialog_", formName, rowCount, 3); Dialog.SetGridDropDown(gridXPath, "UDO-No Email Events - University Development Office"); rowCount++; gridXPath = Dialog.getXGridCell("dataformdialog_", formName, rowCount, 3); Dialog.SetGridDropDown(gridXPath, "UDO-No Email Solicitations - University Development Office"); Dialog.OK(); Dialog.Save(); // save the input } catch (Exception ex) { if (UserName != "bbtest2.gst") { throw new Exception("Error: could not set up a general correspondence. " + ex.Message); } } }
public void WhenICreateAReceiptProcess(Table receipts) { try { foreach (var receipt in receipts.Rows) { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area MarketingAndCommFunctionalArea.Receipts(); // Open receipts area if (receipt.ContainsKey("Name") && !string.IsNullOrEmpty(receipt["Name"])) { receipt["Name"] += uniqueStamp; } ReceiptsPanel.AddReceipt(receipt); // add a receipt } } catch (Exception ex) { throw new Exception("Error: could not create a receipt process. " + ex.Message); } }
public void WhenISearchForAMarketingSelection(string selection) { try { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); //Open marketing functional area string xPathLink = "//div[contains(@class,'bbui-pages-contentcontainer') and not(contains(@class,'x-hide-display'))]//button[contains(@class,'bui-linkbutton')]/div[text()='Selections']"; Panel.WaitClick(xPathLink, 20); // click on the selections link xPathLink = "//button[contains(@class,'bui-linkbutton')]/div[text()='Selection search']"; Panel.WaitClick(xPathLink, 20); // click on the selection search link string xSearchPath = "//*[contains(@class,'bbui-dialog-search') and not(contains(@style,'hidden'))]//*[starts-with(@id, 'ctrl_') and contains(@id, '_NAME_value')]"; Dialog.SetTextField(xSearchPath, selection); Dialog.ClickButton("Search", 30); SearchDialog.SelectFirstResult(); //save the selection Dialog.Save(); } catch (Exception ex) { throw new Exception("Error: could not find the selection " + ex.Message); } }
public void GivenIAddAnAppealMailing(Table table) { //setup date field. StepHelper for date must come before dynamic objects StepHelper.SetTodayDateInTableRow("Mail date", table); dynamic objectData = table.CreateDynamicInstance(); //sorts out date format due to datetime adding 00:00:00 DateTime findDate = objectData.MailDate; //Naviate to Appeal Mailings BBCRMHomePage.OpenMarketingAndCommunicationsFA(); FunctionalArea.OpenLink("Appeal mailings"); //Click Add button Panel.WaitClick(@"//td[contains(@class,'x-toolbar-cell') and not (contains(@class,'x-hide-display'))]//button[text()='Add']"); //Populate Add appeal mailing form using Dialog.SetField Dialog.SetTextField("//input[contains(@id,'_NAME_value')]", objectData.Name + uniqueStamp); //need to convert date to a string Dialog.SetTextField("//input[contains(@id,'_MAILDATE_value')]", findDate.ToShortDateString()); Dialog.SetTextField("//input[contains(@id,'_APPEALID_value')]", objectData.Appeal + uniqueStamp); //need to appeand (Ad-hoc Query) string in order to match on input Dialog.SetTextField("//input[contains(@id,'_IDSETREGISTERID_value')]", objectData.Selection + uniqueStamp + " (Ad-hoc Query)"); Dialog.SetTextField("//input[contains(@id,'_MKTPACKAGEID_value')]", objectData.Package + uniqueStamp); Dialog.Save(); }
public void WhenIStartToAddAMarketingAcknowledgementTemplate() { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.MarketingAcknowledgements(); MarketingAcknowledgementsPanel.AddTemplate(); }
private void NavMailPackage() { BBCRMHomePage.OpenMarketingAndCommunicationsFA(); MarketingAndCommFunctionalArea.OpenLink("Packages", "Packages"); BaseComponent.WaitClick(XpathHelper.xPath.VisiblePanel + "//button/div[./text()='Add a mail package']"); }