Example #1
0
        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);
        }
Example #2
0
        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))
     });
 }
Example #4
0
 private static string GenerateNameWithoutPrefix(this IPageMemberCodeEntry pageMemberCodeEntry, ElementSearchTypePreferences preference)
 {
     return(pageMemberCodeEntry.Locators.First(locator => preference == locator.ElementSearchTypePreference).SearchString.ToPascalCase());
 }
Example #5
0
 private static bool ContainsLocatorWithSearchTypePreference(this IPageMemberCodeEntry pageMemberCodeEntry, ElementSearchTypePreferences preference)
 {
     return(pageMemberCodeEntry.Locators.Any(locator => preference == locator.ElementSearchTypePreference));
 }
 public PageMemberCodeEntryTests()
 {
     _entry = null;
     _code  = string.Empty;
 }