internal static string GenerateNameBasedOnNamingPreferences(this IPageMemberCodeEntry pageMemberCodeEntry) { var prefix = pageMemberCodeEntry.JdiMemberType.ToString().Substring(0, 1).ToLower() + pageMemberCodeEntry.JdiMemberType.ToString().Substring(1); if (!pageMemberCodeEntry.Locators.Any()) { return(prefix + NoName); } var listOfSearchTypes = new[] { ElementSearchTypePreferences.name, ElementSearchTypePreferences.id, ElementSearchTypePreferences.tagName, ElementSearchTypePreferences.linkText, ElementSearchTypePreferences.className }; foreach (var searchType in listOfSearchTypes) { if (pageMemberCodeEntry.ContainsLocatorWithSearchTypePreference(searchType)) { return(prefix + pageMemberCodeEntry.GenerateNameWithoutPrefix(searchType)); } } return(prefix + NoName); }
public IPageMemberCodeEntry ConvertToCodeEntry(HtmlNode node, Type[] analyzers) { _pageMemberCodeEntry = node.ConvertToCodeEntry(); _pageMemberCodeEntry.JdiMemberType = node.ApplyApplicableAnalyzers(analyzers); // experimental _pageMemberCodeEntry.AnalyzerThatWon = null != HtmlNodesExtensions.AnalyzerThatWon ? HtmlNodesExtensions.AnalyzerThatWon.GetType().Name : string.Empty; _pageMemberCodeEntry.RuleThatWon = null != HtmlNodesExtensions.AnalyzerThatWon && null != HtmlNodesExtensions.AnalyzerThatWon.RuleThatWon ? HtmlNodesExtensions.AnalyzerThatWon.RuleThatWon.Description : string.Empty; // if there're rules for internal elements, get the internal // children collection for complex elements if (!string.IsNullOrEmpty(_pageMemberCodeEntry.RuleThatWon)) { WorkOutInternalElements(HtmlNodesExtensions.AnalyzerThatWon.RuleThatWon, node); } if (JdiElementTypes.Element == _pageMemberCodeEntry.JdiMemberType) { //20160718 // _pageMemberCodeEntry.JdiMemberType = _pageMemberCodeEntry.SourceMemberType[0].ConvertHtmlTypeToJdiType(); _pageMemberCodeEntry.JdiMemberType = _pageMemberCodeEntry.SourceMemberType.Get <HtmlElementTypes>()[0].ConvertHtmlTypeToJdiType(); } // temporarily! // _pageMemberCodeEntry.Type = node.GetOriginalNameOfElement().CleanUpFromWrongCharacters(); // temporarily! _pageMemberCodeEntry.MemberType = node.GetOriginalNameOfElement().CleanUpFromWrongCharacters(); // 20160715 _pageMemberCodeEntry.ParentId = _parentPageGuid; return(_pageMemberCodeEntry); }
void GivenCodeEntry(IEnumerable <LocatorDefinition> locatorDefinitions, string jdiMemberType, string memberType) { _entry = new PageMemberCodeEntry { Locators = locatorDefinitions.ToList(), JdiMemberType = Enum.GetValues(typeof(JdiElementTypes)).Cast <JdiElementTypes>().FirstOrDefault(val => 0 == string.Compare(val.ToString().ToLower(), jdiMemberType, StringComparison.Ordinal)), MemberType = memberType }; _entry.SourceMemberType.Set(new List <HtmlElementTypes> { Enum.GetValues(typeof(HtmlElementTypes)).Cast <HtmlElementTypes>().FirstOrDefault(val => 0 == string.Compare(val.ToString().ToLower(), memberType, StringComparison.Ordinal)) }); }
private static string GenerateNameWithoutPrefix(this IPageMemberCodeEntry pageMemberCodeEntry, ElementSearchTypePreferences preference) { return(pageMemberCodeEntry.Locators.First(locator => preference == locator.ElementSearchTypePreference).SearchString.ToPascalCase()); }
private static bool ContainsLocatorWithSearchTypePreference(this IPageMemberCodeEntry pageMemberCodeEntry, ElementSearchTypePreferences preference) { return(pageMemberCodeEntry.Locators.Any(locator => preference == locator.ElementSearchTypePreference)); }
public PageMemberCodeEntryTests() { _entry = null; _code = string.Empty; }