Esempio n. 1
0
 private MemberDeclarationSyntax GenerateHelperClassContents(HelperDefinition helperDefinition)
 {
     return(SyntaxFactory.ClassDeclaration(helperDefinition.Name)
            .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword)))
            .WithBaseList(SyntaxFactory.BaseList(SyntaxFactory.SeparatedList <BaseTypeSyntax>(new [] {
         SyntaxFactory.SimpleBaseType(SyntaxFactory.ParseTypeName("DotVVM.Framework.Testing.SeleniumHelpers.SeleniumHelperBase"))
     })))
            .WithMembers(SyntaxFactory.List(helperDefinition.Members))
            .AddMembers(
                SyntaxFactory.ConstructorDeclaration(helperDefinition.Name)
                .WithParameterList(SyntaxFactory.ParameterList(SyntaxFactory.SeparatedList(new []
     {
         SyntaxFactory.Parameter(SyntaxFactory.Identifier("webDriver"))
         .WithType(SyntaxFactory.ParseTypeName("OpenQA.Selenium.IWebDriver")),
         SyntaxFactory.Parameter(SyntaxFactory.Identifier("parentHelper"))
         .WithType(SyntaxFactory.ParseTypeName("DotVVM.Framework.Testing.SeleniumHelpers.SeleniumHelperBase"))
         .WithDefault(SyntaxFactory.EqualsValueClause(SyntaxFactory.IdentifierName("null"))),
         SyntaxFactory.Parameter(SyntaxFactory.Identifier("selectorPrefix"))
         .WithType(SyntaxFactory.ParseTypeName("System.String"))
         .WithDefault(SyntaxFactory.EqualsValueClause(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(""))))
     })))
                .WithInitializer(SyntaxFactory.ConstructorInitializer(SyntaxKind.BaseConstructorInitializer, SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(new []
     {
         SyntaxFactory.Argument(SyntaxFactory.IdentifierName("webDriver")),
         SyntaxFactory.Argument(SyntaxFactory.IdentifierName("parentHelper")),
         SyntaxFactory.Argument(SyntaxFactory.IdentifierName("selectorPrefix"))
     }))))
                .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword)))
                .WithBody(SyntaxFactory.Block(helperDefinition.ConstructorStatements))
                )
            .AddMembers(
                helperDefinition.Children.Select(GenerateHelperClassContents).ToArray()
                ));
 }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
            }
        }
Esempio n. 5
0
        private void GenerateHelperClass(SeleniumGeneratorConfiguration seleniumConfiguration, HelperDefinition helper)
        {
            var tree = CSharpSyntaxTree.Create(
                SyntaxFactory.CompilationUnit().WithMembers(SyntaxFactory.List(new MemberDeclarationSyntax[]
            {
                SyntaxFactory.NamespaceDeclaration(SyntaxFactory.ParseName(seleniumConfiguration.TargetNamespace))
                .WithMembers(SyntaxFactory.List(new MemberDeclarationSyntax[]
                {
                    GenerateHelperClassContents(helper)
                }))
            }))
                .NormalizeWhitespace()
                );

            File.WriteAllText(seleniumConfiguration.HelperFileFullPath, tree.ToString(), Encoding.UTF8);
        }
Esempio n. 6
0
        private void UpdateMarkupFile(SeleniumGeneratorConfiguration seleniumConfiguration, HelperDefinition helper)
        {
            var sb = new StringBuilder(File.ReadAllText(seleniumConfiguration.ViewFullPath, Encoding.UTF8));

            foreach (var modification in helper.MarkupFileModifications.OrderByDescending(m => m.Position))
            {
                modification.Apply(sb);
            }
            File.WriteAllText(seleniumConfiguration.ViewFullPath, sb.ToString(), Encoding.UTF8);
        }
Esempio n. 7
0
 public void PushScope(HelperDefinition definition)
 {
     HelperDefinitionsStack.Push(definition);
 }