protected override void AddDeclarationsCore(HelperDefinition helper, SeleniumGeneratorContext context) { var type = "DotVVM.Framework.Testing.SeleniumHelpers.Proxies.ButtonProxy"; helper.Members.Add(GeneratePropertyForProxy(context, type)); helper.ConstructorStatements.Add(GenerateInitializerForProxy(context, context.UniqueName, type)); }
public override void VisitControl(ResolvedControl control) { var helperDefinition = HelperDefinitionsStack.Peek(); var dataContextNameSet = false; if (control.TryGetProperty(DotvvmBindableObject.DataContextProperty, out var property)) { if (property is ResolvedPropertyBinding dataContextProperty) { var dataContextName = dataContextProperty.Binding.Value; helperDefinition.DataContextPrefixes.Add(dataContextName); dataContextNameSet = true; } } var controlType = control.Metadata.Type; if (controlType == typeof(DotvvmMarkupControl)) { var controlTreeRoot = seleniumGenerator.ResolveControlTree(control.Metadata.VirtualPath); if (controlTreeRoot != null && controlTreeRoot.Directives.TryGetValue("baseType", out var baseTypeDirectives)) { var(typeName, assemblyName) = GetSplitTypeName(baseTypeDirectives); var baseType = GetControlType(typeName, assemblyName); if (generators.ContainsKey(baseType)) { controlType = baseType; } } } if (generators.TryGetValue(controlType, out var generator)) { // generate the content var context = new SeleniumGeneratorContext() { Control = control, ExistingUsedSelectors = helperDefinition.ExistingUsedSelectors, UsedNames = helperDefinition.UsedNames, Visitor = this }; if (generator.CanAddDeclarations(helperDefinition, context)) { generator.AddDeclarations(helperDefinition, context); return; } } base.VisitControl(control); if (dataContextNameSet) { helperDefinition.DataContextPrefixes.RemoveAt(helperDefinition.DataContextPrefixes.Count - 1); } }
public override void VisitControl(ResolvedControl control) { ISeleniumGenerator generator; if (generators.TryGetValue(control.Metadata.Type, out generator)) { var helperDefinition = HelperDefinitionsStack.Peek(); // generate the content var context = new SeleniumGeneratorContext() { Control = control, UsedNames = helperDefinition.UsedNames, Visitor = this }; if (generator.CanAddDeclarations(helperDefinition, context)) { generator.AddDeclarations(helperDefinition, context); return; } } base.VisitControl(control); }
protected override void AddDeclarationsCore( PageObjectDefinition pageObject, SeleniumGeneratorContext context) { const string type = "ButtonProxy"; AddPageObjectProperties(pageObject, context, type); }
public override bool CanAddDeclarations(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { // check if node is user control // todo: odstranit return(context.Control.DothtmlNode is DothtmlElementNode htmlNode && htmlNode.TagPrefix != null && htmlNode.TagPrefix != "dot"); }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { // this is generator for user control so it's using PageObject not Proxy // you need to create this class in your UI test project in folder PageObjects const string type = "PageObjects.MyControlBPageObject"; AddControlPageObjectProperty(pageObject, context, type); }
public override bool CanAddDeclarations(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { if (context.Control.TryGetProperty(Literal.RenderSpanElementProperty, out var setter)) { if (((ResolvedPropertyValue)setter).Value as bool? == false) { return(false); } } return(base.CanAddDeclarations(pageObject, context)); }
public override bool CanAddDeclarations(HelperDefinition helperDefinition, SeleniumGeneratorContext context) { IAbstractPropertySetter setter; if (context.Control.TryGetProperty(Literal.RenderSpanElementProperty, out setter)) { if (((ResolvedPropertyValue)setter).Value as bool? == false) { return(false); } } return(base.CanAddDeclarations(helperDefinition, context)); }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { if (context.Control.TryGetProperty(Repeater.ItemTemplateProperty, out var itemTemplate)) { var template = (ResolvedPropertyTemplate)itemTemplate; // generate child helper class var itemHelperName = context.UniqueName + "RepeaterPageObject"; context.Visitor.PushScope(new PageObjectDefinition { Name = itemHelperName }); context.Visitor.VisitPropertyTemplate(template); pageObject.Children.Add(context.Visitor.PopScope()); // generate property const string type = "RepeaterProxy"; AddGenericPageObjectProperties(pageObject, context, type, itemHelperName); } }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { if (context.Control.TryGetProperty(GridViewTemplateColumn.ContentTemplateProperty, out var contentTemplate)) { var template = (ResolvedPropertyTemplate)contentTemplate; // generate child helper class var itemHelperName = context.UniqueName + "GridViewTemplateColumn"; context.Visitor.PushScope(new PageObjectDefinition { Name = itemHelperName }); context.Visitor.VisitPropertyTemplate(template); pageObject.Children.Add(context.Visitor.PopScope()); // generate property pageObject.Members.Add(GeneratePropertyForProxy(context.UniqueName, itemHelperName)); pageObject.ConstructorStatements.Add(GenerateInitializerForTemplate(context.UniqueName, itemHelperName)); } }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { if (context.Control.TryGetProperty(GridView.ColumnsProperty, out var columnsTemplate)) { var template = (ResolvedPropertyControlCollection)columnsTemplate; // generate child page object class var itemPageObjectName = context.UniqueName + "GridViewPageObject"; context.Visitor.PushScope(new PageObjectDefinition { Name = itemPageObjectName }); context.Visitor.VisitPropertyControlCollection(template); pageObject.Children.Add(context.Visitor.PopScope()); // generate proxy const string type = "GridViewProxy"; AddGenericPageObjectProperties(pageObject, context, type, itemPageObjectName); } }
protected override void AddDeclarationsCore(HelperDefinition helper, SeleniumGeneratorContext context) { IAbstractPropertySetter itemTemplate; if (context.Control.TryGetProperty(Repeater.ItemTemplateProperty, out itemTemplate)) { var template = (ResolvedPropertyTemplate)itemTemplate; // generate child helper class var itemHelperName = context.UniqueName + "RepeaterHelper"; context.Visitor.PushScope(new HelperDefinition() { Name = itemHelperName }); context.Visitor.VisitPropertyTemplate(template); helper.Children.Add(context.Visitor.PopScope()); // generate property var type = "DotVVM.Framework.Testing.SeleniumHelpers.Proxies.RepeaterProxy"; helper.Members.Add(GeneratePropertyForProxy(context, type, itemHelperName)); helper.ConstructorStatements.Add(GenerateInitializerForProxy(context, context.UniqueName, type, itemHelperName)); } }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { var type = $"{context.UniqueName}PageObject"; AddControlPageObjectProperty(pageObject, context, type); }
protected override void AddDeclarationsCore(PageObjectDefinition pageObject, SeleniumGeneratorContext context) { throw new System.NotImplementedException(); }