private HashSet <string> GetUsedSelectors(IAbstractTreeRoot viewTree) { // traverse the tree var selectorFinderVisitor = new SeleniumSelectorFinderVisitor(); selectorFinderVisitor.VisitView((ResolvedTreeRoot)viewTree); return(selectorFinderVisitor.GetResult()); }
private MasterPageObjectDefinition GetMasterPageObjectDefinition( SeleniumGeneratorConfiguration seleniumConfiguration, IAbstractTreeRoot masterTree, IAbstractDirective masterPageFile, HashSet <string> usedSelectors) { var definition = CreatePageObjectDefinition(seleniumConfiguration, masterTree, usedSelectors); return(MapPageObjectDefinition(definition, masterPageFile)); }
/// <summary> /// Resolves the content of the root node. /// </summary> private void ResolveRootContent(DothtmlRootNode root, IAbstractTreeRoot view, IControlResolverMetadata viewMetadata) { foreach (var node in root.Content) { var child = ProcessNode(view, node, viewMetadata, view.DataContextTypeStack); if (child != null) { treeBuilder.AddChildControl(view, child); } } }
private PageObjectDefinition CreatePageObjectDefinition( SeleniumGeneratorConfiguration seleniumConfiguration, IAbstractTreeRoot tree, HashSet <string> masterUsedUniqueSelectors = null) { var pageObjectDefinition = GetPageObjectDefinition(seleniumConfiguration, masterUsedUniqueSelectors); // traverse the tree visitor.PushScope(pageObjectDefinition); visitor.VisitView((ResolvedTreeRoot)tree); return(visitor.PopScope()); }
private List <MasterPageObjectDefinition> ResolveMasterPages( DotvvmConfiguration dotvvmConfiguration, SeleniumGeneratorConfiguration seleniumConfiguration, IAbstractTreeRoot viewTree) { var pageObjectDefinitions = new List <MasterPageObjectDefinition>(); CreateMasterPageObjectDefinitions(seleniumConfiguration, viewTree, pageObjectDefinitions); foreach (var pageObjectDefinition in pageObjectDefinitions) { UpdateMarkupFile(pageObjectDefinition, pageObjectDefinition.MasterPageFullPath); } return(pageObjectDefinitions); }
private void CreateMasterPageObjectDefinitions(SeleniumGeneratorConfiguration seleniumConfiguration, IAbstractTreeRoot viewTree, ICollection <MasterPageObjectDefinition> pageObjectDefinitions) { if (IsNestedInMasterPage(viewTree)) { var masterPageFile = viewTree.Directives[ParserConstants.MasterPageDirective].FirstOrDefault(); if (masterPageFile != null) { var masterTree = ResolveControlTree(masterPageFile.Value); var usedSelectors = GetUsedSelectors(masterTree); var masterPageObjectDefinition = GetMasterPageObjectDefinition(seleniumConfiguration, masterTree, masterPageFile, usedSelectors); pageObjectDefinitions.Add(masterPageObjectDefinition); // recursion CreateMasterPageObjectDefinitions(seleniumConfiguration, masterTree, pageObjectDefinitions); } } }
private static HelperDefinition CreateHelperDefinition(SeleniumGeneratorConfiguration seleniumConfiguration, IAbstractTreeRoot tree) { // traverse the tree var visitor = new SeleniumHelperVisitor(); visitor.PushScope(new HelperDefinition() { Name = seleniumConfiguration.HelperName }); visitor.VisitView((ResolvedTreeRoot)tree); return(visitor.PopScope()); }
private static void GetControlsWithSelectors(IAbstractTreeRoot tree, IResolvedControlTreeVisitor visitor) { visitor.VisitView((ResolvedTreeRoot)tree); }
private bool IsNestedInMasterPage(IAbstractTreeRoot view) { return(view.Directives.ContainsKey(ParserConstants.MasterPageDirective)); }
protected override void ResolveRootContent(DothtmlRootNode root, IAbstractTreeRoot view, IControlResolverMetadata viewMetadata) { ((ResolvedTreeRoot)view).ResolveContentAction = () => base.ResolveRootContent(root, view, viewMetadata); }