public void IsFreeDomainIsCharged(string hostingType) { try { PageInitHelper <PageNavigationHelper> .PageInit.NavigationTo(UiConstantHelper.Hosting, hostingType); //UiConstantHelper.DomainNameSearch Assert.IsTrue(PageInitHelper <PageValidationHelper> .PageInit.TitleIsAt(hostingType.Trim()), "The Page Redirect to some other page - " + BrowserInit.Driver.Title + " instead of " + hostingType); var dicHostingProduct = PageInitHelper <HostingPage> .PageInit.SelectHostingProduct(hostingType); //Select domain var listDicHostingProduct = PageInitHelper <DomainSelectionPage> .PageInit.DomainNamesForHosting(hostingType, dicHostingProduct[0], null, UiConstantHelper.FreeDomain); AMerge mergeTWoListOfDic = new MergeData(); var mergedListDic = mergeTWoListOfDic.MergingTwoListOfDic(dicHostingProduct, listDicHostingProduct); //ICartValidation cartValidation = new ProductListCartValidation(); //var dicWidgetValidation = cartValidation.CartWidgetValidation(mergedListDic); //Remove Hosting from Cart Items PageInitHelper <HostingPage> .PageInit.ValidateFreeDomainIsCharged(mergedListDic); } catch (Exception ex) { PageInitHelper <LoggerHelper> .PageInit.CaptureException(ex); var exceptionType = ex.GetType().ToString(); var namespaceName = GetType().Namespace; PageInitHelper <TestFinalizerHelper> .PageInit.Testclosure(namespaceName, ex); PageInitHelper <ExceptionType> .PageInit.ThrowException(exceptionType, ex); } }
public List <SortedDictionary <string, string> > ValidateInPurchaseSumarypage(List <SortedDictionary <string, string> > mergedScAndCartWidgetList) { APurchaseSummaryPageValidation ordersummary = new ValidatePurchaseSummary(); var purcasedOrderNumber = ordersummary.PurchaseSummaryPage(); AMerge mergeTWoListOfDic = new MergeData(); var mergedPurchaseSummaryItemsAndScItemsList = mergeTWoListOfDic.MergingTwoListOfDic(purcasedOrderNumber, mergedScAndCartWidgetList); return(mergedPurchaseSummaryItemsAndScItemsList); }
public List <SortedDictionary <string, string> > AddShoppingCartItemsToDic(List <SortedDictionary <string, string> > cartWidgetList, string whois, string premiumDns) { // PageInitHelper<AddProductShoppingCartItems>.PageInit.MessageAndAlertVerification(); var shoppingcartItemList = PageInitHelper <AddProductShoppingCartItems> .PageInit.AddShoppingCartItemsToDictionaries(cartWidgetList, whois, premiumDns); AVerify verifingTwoListOfDic = new VerifyData(); verifingTwoListOfDic.VerifyTwoListOfDic(shoppingcartItemList, cartWidgetList); AMerge mergeTWoListOfDic = new MergeData(); var mergedScAndCartWidgetDic = mergeTWoListOfDic.MergingTwoListOfDic(shoppingcartItemList, cartWidgetList); PageInitHelper <ShoppingCartPageFactory> .PageInit.ConfirmOrderBtn.Click(); return(mergedScAndCartWidgetDic); }
public List <SortedDictionary <string, string> > CartWidgetValidation(List <SortedDictionary <string, string> > searchResultDomainsList) { var subTotal = 0.00M; var icannfees = 0.00M; var domainValidity = string.Empty; var domainPrice = 0.00M; var domainName = string.Empty; var moreclass = BrowserInit.Driver.FindElement( By.XPath( "((.//*[contains(@class,'cart spacer-bottom')]//ul/li[@class='subtotal'] | //ul/li[@class='transfer'] | .//*[@class='cart-widget']/ul/li)/preceding-sibling::li)[last()]")) .GetAttribute(UiConstantHelper.AttributeClass); if (moreclass.Contains("more")) { var moretext = Regex.Replace(BrowserInit.Driver.FindElement(By.XPath(".//*[(contains(@class,'more'))]/a")).Text, "[^0-9.]", string.Empty).Trim(); if (!moretext.Equals(string.Empty)) { BrowserInit.Driver.FindElement(By.XPath(".//*[(contains(@class,'more'))]/a")).Click(); } } var cartWidgetList = new List <SortedDictionary <string, string> >(); var cartWidgetWindowItems = PageInitHelper <CartWidgetPageFactory> .PageInit.ProductListCount; SortedDictionary <string, string> cartWidgetDic; for (var itemIndex = cartWidgetWindowItems.Count + 1; itemIndex-- > 1;) { var xpath = "((.//*[contains(@class,'cart spacer-bottom')]//ul/li[@class='register'] | //ul/li[@class='transfer'] | .//*[@class='cart-widget']/ul/li)[not(contains(@class,'subtotal'))][not(contains(@class,'more'))])[" + itemIndex + "]"; var ele = BrowserInit.Driver.FindElement(By.XPath(xpath)); PageInitHelper <PageNavigationHelper> .PageInit.ScrollToElement(ele); cartWidgetDic = new SortedDictionary <string, string>(); var cItemClass = ele.GetAttribute("class"); if (cItemClass.Contains(string.Empty) | cItemClass.IndexOf("register", StringComparison.CurrentCultureIgnoreCase) >= 0 | cItemClass.IndexOf("transfer", StringComparison.CurrentCultureIgnoreCase) >= 0) { var widgetItemDomainName = BrowserInit.Driver.FindElement(By.XPath(xpath + "//strong")).Text; if (widgetItemDomainName.Contains(".")) { domainName = widgetItemDomainName.Trim(); } var domainValidityDetails = BrowserInit.Driver.FindElements(By.XPath(xpath + "/ul/li/p")); for (var i = 1; i <= domainValidityDetails.Count; i++) { var spanCount = BrowserInit.Driver.FindElements(By.XPath(xpath + "/ul/li/p/span")); for (var j = 1; j <= spanCount.Count; j++) { var spanclass = BrowserInit.Driver.FindElement(By.XPath("(" + xpath + "/ul/li/p/span)[" + j + "]")) .GetAttribute(UiConstantHelper.AttributeClass); if (spanclass.Contains("item")) { var spantext = BrowserInit.Driver.FindElement(By.XPath("(" + xpath + "/ul/li/p/span)[" + j + "]")) .Text; if (spantext.IndexOf("registration", StringComparison.CurrentCultureIgnoreCase) >= 0) { domainValidity = Regex.Replace(spantext, "registration", string.Empty).Trim(); } else if (spantext.IndexOf("transfer", StringComparison.CurrentCultureIgnoreCase) >= 0) { domainValidity = Regex.Replace(spantext, "transfer", string.Empty).Trim(); } else if (spantext.IndexOf("FreeDNS", StringComparison.CurrentCultureIgnoreCase) >= 0) { cartWidgetDic.Add("Domaintype", spantext.Trim()); } } else if (spanclass.Contains("price")) { var spantext = BrowserInit.Driver.FindElement(By.XPath("(" + xpath + "/ul/li/p/span)[" + j + "]/../span[1]")).Text; var spanPrice = BrowserInit.Driver.FindElement(By.XPath("(" + xpath + "/ul/li/p/span)[" + j + "]")).Text; if (spantext.IndexOf("registration", StringComparison.CurrentCultureIgnoreCase) >= 0 | spantext.IndexOf("transfer", StringComparison.CurrentCultureIgnoreCase) >= 0) { domainPrice = Convert.ToDecimal(Regex.Replace(spanPrice, @"[^\d..][^\w\s]*", string.Empty).Trim()); } else if (spantext.Contains("ICANN fee")) { icannfees = Convert.ToDecimal(Regex.Replace(spanPrice, @"[^\d..][^\w\s]*", string.Empty).Trim()); } else if (spantext.IndexOf("FreeDNS", StringComparison.CurrentCultureIgnoreCase) >= 0) { domainPrice = Convert.ToDecimal(0.00M); } } } } } cartWidgetDic.Add(EnumHelper.DomainKeys.DomainName.ToString(), domainName.Trim()); if (domainValidity != string.Empty) { cartWidgetDic.Add(EnumHelper.DomainKeys.DomainDuration.ToString(), domainValidity); } cartWidgetDic.Add(EnumHelper.DomainKeys.DomainPrice.ToString(), domainPrice.ToString(CultureInfo.InvariantCulture)); cartWidgetDic.Add(EnumHelper.CartWidget.IcanPrice.ToString(), icannfees.ToString(CultureInfo.InvariantCulture)); subTotal = subTotal + domainPrice + icannfees; cartWidgetList.Add(cartWidgetDic); domainName = string.Empty; domainValidity = string.Empty; domainPrice = 0.00M; icannfees = 0.00M; } cartWidgetDic = new SortedDictionary <string, string> { { EnumHelper.CartWidget.SubTotal.ToString(), subTotal.ToString(CultureInfo.InvariantCulture) } }; cartWidgetList.Add(cartWidgetDic); var subtotaldiv = PageInitHelper <CartWidgetPageFactory> .PageInit.SubTotal; PageInitHelper <PageNavigationHelper> .PageInit.ScrollToElement(subtotaldiv); var widgetSubTotalText = subtotaldiv.Text; var widgetSubTotal = Convert.ToDecimal(Regex.Replace(widgetSubTotalText, @"[^\d..][^\w\s]*", string.Empty).Trim()); Assert.IsTrue(widgetSubTotal.Equals(Convert.ToDecimal(cartWidgetDic[EnumHelper.CartWidget.SubTotal.ToString()])), "Cart Widget domain subtotal mismatching with subtotal values Expected - " + Convert.ToDecimal(cartWidgetDic[EnumHelper.CartWidget.SubTotal.ToString()]) + ", but actual subtotal shown as - " + widgetSubTotal); AVerify verifingTwoListOfDic = new VerifyData(); verifingTwoListOfDic.VerifyTwoListOfDic(searchResultDomainsList, cartWidgetList); AMerge mergeTWoListOfDic = new MergeData(); mergeTWoListOfDic.MergingTwoListOfDic(searchResultDomainsList, cartWidgetList); PageInitHelper <CartWidgetPageFactory> .PageInit.ViewCartButton.Click(); return(cartWidgetList); }
public List <SortedDictionary <string, string> > CartWidgetValidation(List <SortedDictionary <string, string> > domainListValidation) { var cartBelongsTo = PageInitHelper <CartWidgetPageFactory> .PageInit.CartContent.GetAttribute(UiConstantHelper .AttributeId); Assert.IsTrue(cartBelongsTo.Contains("productUl")); var cartWidgetList = new List <SortedDictionary <string, string> >(); var cartWidgetDic = new SortedDictionary <string, string>(); foreach (var cartItem in PageInitHelper <CartWidgetPageFactory> .PageInit.CartWidgetWindowItems.Select((value, i) => new { i, value })) { var subitemvalue = cartItem.value; var subitemindex = cartItem.i + 1; var cItemClass = subitemvalue.GetAttribute("class"); if (!cItemClass.Equals(string.Empty)) { continue; } if (BrowserInit.Driver.FindElement(By.XPath("((.//*[contains(@class,'cart spacer-bottom')]//ul/li[@class='register'] | //ul/li[@class='transfer'] | .//*[@class='cart-widget']/ul/li|(//ul/li[not(@class)]/strong[contains(@class,'product')]/..)| .//*[@class='cart-widget']/ul/li)[not(contains(@class,'subtotal'))][not(contains(@class,'more'))])[" + subitemindex + "]/..")) .GetAttribute(UiConstantHelper.AttributeClass) .Contains("WhoisGuard")) { var pCount = subitemvalue.FindElements(By.TagName("p")); foreach (var spanClass in from itemTxt in pCount let pClassText = itemTxt.GetAttribute(UiConstantHelper.AttributeClass) where pClassText.Equals(string.Empty) select itemTxt.FindElements(By.TagName("span")) into spanCount from spanClass in spanCount select spanClass) { if (spanClass.GetAttribute(UiConstantHelper.AttributeClass).Contains("item")) { cartWidgetDic.Add(EnumHelper.ShoppingCartKeys.WhoisGuardForDomainDuration.ToString(), spanClass.Text.Replace("subscription", "").Trim()); } else if (spanClass.GetAttribute(UiConstantHelper.AttributeClass) .Contains("price")) { var priceText = spanClass.Text.Equals("FREE") ? "0.00" : Regex.Replace(spanClass.Text, @"[^\d..][^\w\s]*", ""); cartWidgetDic.Add(EnumHelper.ShoppingCartKeys.WhoisGuardForDomainPrice.ToString(), priceText.Trim()); } } } else { var strongClassName = subitemvalue.FindElement(By.TagName("strong")) .GetAttribute(UiConstantHelper.AttributeClass); var productName = subitemvalue.FindElement(By.TagName("strong")).Text; if (strongClassName.Equals("productname".Trim()) && !productName.Contains(".")) { if (subitemvalue.Text.Contains("Xeon")) { var dServers = Regex.Split(subitemvalue.Text, "(,)")[0]; var dedicatedServers = dServers.Split(' ')[0] + " " + dServers.Split(' ')[1] + " " + dServers.Split(' ')[2]; cartWidgetDic.Add(EnumHelper.HostingKeys.ProductName.ToString(), dedicatedServers); } else { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductName.ToString(), subitemvalue.FindElement(By.TagName("strong")).Text); } var pCount = subitemvalue.FindElements(By.TagName("p")); foreach (var itemTxt in pCount) { var pClassText = itemTxt.GetAttribute(UiConstantHelper.AttributeClass); if (pClassText.Equals(string.Empty)) { var spanCount = itemTxt.FindElements(By.TagName("span")); foreach (var spanClass in spanCount) { if (spanClass.GetAttribute(UiConstantHelper.AttributeClass).Contains("item")) { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductDuration.ToString(), spanClass.Text.Replace("subscription", "").Trim()); } else if (spanClass.GetAttribute(UiConstantHelper.AttributeClass) .Contains("price")) { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductPrice.ToString(), Regex.Replace(spanClass.Text, @"[^\d..][^\w\s]*", "").Trim()); } } } if (!pClassText.EndsWith("addon")) { continue; } { var spanCount = itemTxt.FindElements(By.TagName("span")); var associatedDicKey = ""; var associatedDicValue = ""; for (var i = 0; i < spanCount.Count; i++) { if (i == 0) { string associatedDicKeyTxt = spanCount[i].Text; associatedDicKey = associatedDicKeyTxt.Contains("transfer") ? associatedDicKeyTxt.Replace("transfer", "").Trim() : associatedDicKeyTxt; } else { associatedDicValue = spanCount[i].Text; } } var priceText = associatedDicValue.Equals("FREE") ? "0.00" : Regex.Replace(associatedDicValue, @"[^\d..][^\w\s]*", ""); cartWidgetDic.Add(associatedDicKey.Trim(), priceText.Trim()); } } } else if (strongClassName.Contains("productname domain".Trim()) || productName.Contains(".")) { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductDomainName.ToString(), subitemvalue.FindElement(By.TagName("strong")).Text); var pCount = subitemvalue.FindElements(By.TagName("p")); foreach (var itemTxt in pCount) { var spanCount = itemTxt.FindElements(By.TagName("span")); foreach (var spanClass in spanCount.Select((value, i) => new { i, value })) { if (spanClass.value.GetAttribute(UiConstantHelper.AttributeClass) .Contains("item") && spanClass.value.Text != "ICANN fee") { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductDomainDuration.ToString(), spanClass.value.Text.Replace("registration", string.Empty).Replace("transfer", string.Empty).Trim()); } else if (spanClass.value.GetAttribute(UiConstantHelper.AttributeClass) .Contains("price") && pCount.IndexOf(itemTxt) != 1) { cartWidgetDic.Add(EnumHelper.HostingKeys.ProductDomainPrice.ToString(), decimal.Parse(Regex.Replace(spanClass.value.Text, @"[^\d..][^\w\s]*", "").Trim()).ToString(CultureInfo.InvariantCulture)); } else if (spanClass.i.ToString() == "1") { if (spanClass.value.GetAttribute(UiConstantHelper.AttributeClass) .Contains("price")) { cartWidgetDic.Add(EnumHelper.CartWidget.IcanPrice.ToString(), decimal.Parse(Regex.Replace(spanClass.value.Text, @"[^\d..][^\w\s]*", "").Trim()).ToString(CultureInfo.InvariantCulture)); } } } } } } } var subTotal = cartWidgetDic.Where(dicCartWidgetItem => dicCartWidgetItem.Value.Contains(".") && !dicCartWidgetItem.Key.Equals(EnumHelper.HostingKeys.ProductDomainName.ToString()) && !dicCartWidgetItem.Key.Equals(EnumHelper.HostingKeys.ProductName.ToString())).Aggregate(0.0m, (current, dicCartWidgetItem) => current + decimal.Parse(dicCartWidgetItem.Value)); cartWidgetDic.Add(EnumHelper.CartWidget.SubTotal.ToString(), subTotal.ToString(CultureInfo.InvariantCulture)); cartWidgetList.Add(cartWidgetDic); var widgetSubTotal = decimal.Parse(Regex.Replace( PageInitHelper <CartWidgetPageFactory> .PageInit.CartWidgetSubTotal.Text, @"[^\d..][^\w\s]*", "")); var dictWithKey = cartWidgetList.First(d => d.ContainsKey(EnumHelper.CartWidget.SubTotal.ToString())); var dicSubTotalValue = decimal.Parse( Regex.Replace(dictWithKey[EnumHelper.CartWidget.SubTotal.ToString()], "\"[^\"]*\"", "") .Trim()); Assert.IsTrue(dicSubTotalValue.Equals(widgetSubTotal), "Sub total is miss matching with widget sub total"); AVerify verifingTwoListOfDic = new VerifyData(); verifingTwoListOfDic.VerifyTwoListOfDic(domainListValidation, cartWidgetList); AMerge mergeTWoListOfDic = new MergeData(); cartWidgetList = mergeTWoListOfDic.MergingTwoListOfDic(domainListValidation, cartWidgetList); PageInitHelper <CartWidgetPageFactory> .PageInit.ViewCartButton.Click(); if (!PageInitHelper <CartWidgetPageFactory> .PageInit.ShoppingCartHeadingTxt.Text.Trim().Equals("Shopping Cart")) { PageInitHelper <CartWidgetPageFactory> .PageInit.ViewCartButton.Click(); } return(cartWidgetList); }
public List <SortedDictionary <string, string> > AddShoppingCartItemsToDic(List <SortedDictionary <string, string> > cartWidgetList, string whois, string premiumDns) { var certificateQtyinSc = string.Empty; var certificateDurationinSc = string.Empty; var certificatePriceinSc = 0.00M; var shoppingcartItemList = new List <SortedDictionary <string, string> >(); const string productGroupsXpath = "(.//*[@class='product-group'])"; var productGroups = BrowserInit.Driver.FindElements(By.XPath(productGroupsXpath)); var i = 0; foreach (var productGroup in productGroups) { i = i + 1; var shoppingCartItemsDic = new SortedDictionary <string, string>(); var certificateNameinSc = Regex.Replace(productGroup.FindElement(By.TagName("strong")).Text.Trim(), "UPDATE", string.Empty); var cerQty = productGroup.FindElements(By.ClassName("qty")).Count > 0; if (cerQty) { certificateQtyinSc = productGroup.FindElement(By.XPath("//*[contains(@class,'qty')]/input")).GetAttribute(UiConstantHelper.AttributeValue).Trim(); } var certificateDurationcount = productGroup.FindElement(By.XPath("//*[contains(@class,'Duration')]")); foreach (var certificateDuration in certificateDurationcount.FindElements(By.TagName("span")).Where(certificateDuration => certificateDuration.Text.Contains("Year"))) { certificateDurationinSc = certificateDuration.Text.Trim(); break; } if (BrowserInit.Driver.FindElements(By.XPath("(" + productGroupsXpath + "[" + i + "]/../div/div/*)")).Count == 4) { var extraCount = BrowserInit.Driver.FindElements( By.XPath("(" + productGroupsXpath + "[" + i + "]/../div/div/*)[2]//*")); foreach (var extradomainPrice in from extraDomain in extraCount where extraDomain.GetAttribute(UiConstantHelper.AttributeClass).Contains("price") select decimal.Parse(Regex.Replace(extraDomain.Text, @"[^\d..][^\w\s]*", string.Empty).Trim())) { shoppingCartItemsDic.Add("Extra domain price", extradomainPrice.ToString(CultureInfo.InvariantCulture)); break; } } var cerPriceCount = BrowserInit.Driver.FindElements(By.XPath("(" + productGroupsXpath + "[" + i + "]//div[3]/span)")); foreach (var cerPrice in cerPriceCount.Where(cerPrice => cerPrice.GetAttribute(UiConstantHelper.AttributeClass).Contains("amount"))) { certificatePriceinSc = decimal.Parse(Regex.Replace(cerPrice.Text, @"[^\d..][^\w\s]*", string.Empty).Trim()); } shoppingCartItemsDic.Add(EnumHelper.Ssl.CertificateName.ToString(), certificateNameinSc); shoppingCartItemsDic.Add(EnumHelper.Ssl.CertificatePrice.ToString(), certificatePriceinSc.ToString(CultureInfo.InvariantCulture)); shoppingCartItemsDic.Add(EnumHelper.Ssl.CertificateDuration.ToString(), certificateDurationinSc); if (certificateQtyinSc != string.Empty) { shoppingCartItemsDic.Add("Certificate Qty", certificateQtyinSc); } shoppingcartItemList.Add(shoppingCartItemsDic); } AVerify verifingTwoListOfDic = new VerifyData(); verifingTwoListOfDic.VerifyTwoListOfDic(shoppingcartItemList, cartWidgetList); AMerge mergeTWoListOfDic = new MergeData(); var mergedScAndCartWidgetDic = mergeTWoListOfDic.MergingTwoListOfDic(shoppingcartItemList, cartWidgetList); PageInitHelper <ShoppingCartPageFactory> .PageInit.ConfirmOrderBtn.Click(); return(mergedScAndCartWidgetDic); }