public override ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string re   = "";
            var    p    = ParseExpression(this.expression);
            int    indi = p.Item1;

            if (indi == 1)
            {
                string[] keys = p.Item2;
                foreach (string _key in keys)
                {
                    if (re != "")
                    {
                        re += NEW_LINE;
                    }
                    re += "Keyboard.SendSingleKey(\"" + _key + "\");";
                }
            }
            else if (indi == 2)
            {
                string k1 = p.Item2[0];
                string k2 = p.Item2[1];
                re += "Keyboard.SendCombinedKeys(\"" + k1 + "\", \"" + k2 + "\");";
            }
            else
            {
                LogError(logger, expression);
                return(null);
            }
            return(new ScriptsExpression(re));
        }
Beispiel #2
0
        public static ScriptsExpression GetRawScripts(IScriptGenerationParams param, string expression)
        {
            string re = "Validate.";
            string scriptAccessEle = GetScriptAccessElement(param.SpecNode.UIElement, param.InstanceName);

            switch (param.SpecNode.Attribute)
            {
            case TEXT:
                re += "TextEquals(" + scriptAccessEle + ", \"" + NormalizeExpression(expression) + "\");";
                break;

            case WIDTH:
                re += "WidthEquals(" + scriptAccessEle + ", " + expression + ");";
                break;

            case HEIGHT:
                re += "HeightEquals(" + scriptAccessEle + ", " + expression + ");";
                break;
                //case BOUND_RECT:
                //    // TODO: remove hard code
                //    re += ".ValidateBoundRectAttribute(" + expression + ");";
                //    break;
            }
            return(new ScriptsExpression(re));
        }
Beispiel #3
0
        public override ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string attribute = scriptGenerationParams.SpecNode.Attribute.Trim();
            string re        = "";

            if (attribute == null || attribute == "" || attribute.Equals("text", StringComparison.OrdinalIgnoreCase))
            {
                re += "Validate.";
                string value = expression;
                if (expression.StartsWith(ATTRIBUTE_CONTAIN))
                {
                    value = new Regex(ATTRIBUTE_CONTAIN).Replace(expression, "", 1);
                    re   += "TextContain(";
                }
                else if (expression.StartsWith(ATTRIBUTE_NOT_CONTAIN))
                {
                    value = new Regex(ATTRIBUTE_NOT_CONTAIN).Replace(expression, "", 1);
                    re   += "TextNotContain(";
                }
                value = NormalizeExpression(value);
                re   += GetScriptAccessElement(scriptGenerationParams.SpecNode.UIElement, scriptGenerationParams.InstanceName);
                re   += ", \"" + value + "\");";
                return(new ScriptsExpression(re));
            }
            else
            {
                throw new NotImplementedException();
            }
        }
Beispiel #4
0
        public string GenRawScripts(IScriptGenerationParams _params, string attributeValue)
        {
            string scriptAccessEle = GetScriptAccessElement(_params.SpecNode.UIElement, _params.InstanceName);
            string re = scriptAccessEle;

            // combobox select item
            if (_params.SpecNode.UIElement is ComboBoxElement &&
                int.TryParse(attributeValue.Trim(), out int n))
            {
                re += ".ChooseOption(" + attributeValue.Trim() + ");";
            }
            else
            {
                string attribute = _params.SpecNode.Attribute.Trim();
                if (attribute == null || attribute == "" || attribute.Equals("text", StringComparison.OrdinalIgnoreCase))
                {
                    re += ".InputString(\"" + attributeValue + "\");";
                }
                else if (attribute.Equals("width", StringComparison.OrdinalIgnoreCase))
                {
                    re += ".SetWidth(" + attributeValue + ");";
                }
                else if (attribute.Equals("height", StringComparison.OrdinalIgnoreCase))
                {
                    re += ".SetHeight(" + attributeValue + ");";
                }
            }
            return(re);
        }
Beispiel #5
0
        public override ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string re = GetScriptAccessElement(scriptGenerationParams.SpecNode.UIElement, scriptGenerationParams.InstanceName)
                        + ".RightClick();";

            return(new ScriptsExpression(re));
        }
Beispiel #6
0
        public override ScriptsExpression GenScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string re    = GetComment(scriptGenerationParams);
            var    param = scriptGenerationParams as WaitValidateScriptGenerationParams;

            // generate while check
            return(new ScriptsExpression(re + NEW_LINE + GetWhileWaitScripts(param)));
        }
Beispiel #7
0
        protected string GetComment(IScriptGenerationParams scriptGenerationParams)
        {
            string comment = SLASH2 + "[" + GetTypeAction(scriptGenerationParams.Color) + "] ";

            if (nodeAffect is SpecNode specNode)
            {
                comment += specNode.Expression + ": " + (expression == null ? "" : replaceReturnChar(expression));
            }
            return(comment);
        }
Beispiel #8
0
        public override ScriptsExpression HandleAndGenScripts(IScriptGenerationParams scriptGenerationParams, ScriptType scriptType = ScriptType.Normal)
        {
            string re = GetComment(scriptGenerationParams) + NEW_LINE;

            if (scriptGenerationParams is ValidationUCScriptGenerationParams param)
            {
                string newFunctionContent = "";
                if (param.SpecNode.Attribute == null ||
                    param.SpecNode.Attribute == "")
                {
                    param.SpecNode.Attribute = TEXT;
                }
                foreach (string exp in param.ListExps)
                {
                    if (newFunctionContent != "")
                    {
                        newFunctionContent += NEW_LINE;
                    }
                    if (scriptType == ScriptType.Normal)
                    {
                        newFunctionContent += ValidationSpecUserAction.GetRawScripts(param, exp).Expression;
                    }
                    else if (scriptType == ScriptType.Ranorex)
                    {
                        newFunctionContent += ValidationSpecUserAction.GetRawRanorexScripts(param as IRanorexScriptGenerationParams, exp).Expression;
                    }
                }
                string newClassName = param.ClassName;
                string newFuncName  = param.FunctionName;
                re += newClassName + "." + newFuncName + "();";
                var pair = CheckFunctionExisted(param.ClassExpressions, newClassName, newFuncName, 0, true);
                // if not existed
                if (!pair.Item1)
                {
                    FunctionExpression func = new FunctionExpression(newFuncName);
                    func.setContent(newFunctionContent);
                    UserCodeScriptsExpression re1 = new UserCodeScriptsExpression(re);
                    re1.MapClassAndFuncsAddition = new Dictionary <string, List <FunctionExpression> >
                    {
                        { newClassName, new List <FunctionExpression>()
                          {
                              func
                          } }
                    };
                    return(re1);
                }
                return(new ScriptsExpression(re));
            }
            else
            {
                re += ValidationSpecUserAction.GetRawScripts(scriptGenerationParams, this.Expression).Expression;
                return(new ScriptsExpression(re));
            }
        }
Beispiel #9
0
        //full scripts
        public virtual ScriptsExpression GenScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string reStr = GetComment(scriptGenerationParams) + NEW_LINE;
            var    re    = GenRawScripts(scriptGenerationParams);

            if (re == null)
            {
                return(null);
            }
            re.Expression = reStr + re.Expression;
            return(re);
        }
        public static IRanorexScriptGenerationParams CloneFromNormal(IScriptGenerationParams para)
        {
            IRanorexScriptGenerationParams re;

            if (para is RanorexValidationUCScriptGenerationParams)
            {
                re = new RanorexValidationUCScriptGenerationParams();
                ((RanorexValidationUCScriptGenerationParams)re).CopyAttributesFrom(para as RanorexValidationUCScriptGenerationParams);
            }
            else if (para is RanorexWaitValidateScriptGenerationParams)
            {
                re = new RanorexWaitValidateScriptGenerationParams();
                ((RanorexWaitValidateScriptGenerationParams)re).CopyAttributesFrom(para as RanorexWaitValidateScriptGenerationParams);
            }
            else if (para is RanorexUCScriptGenerationParams)
            {
                re = new RanorexUCScriptGenerationParams();
                ((RanorexUCScriptGenerationParams)re).CopyAttributesFrom(para as RanorexUCScriptGenerationParams);
            }
            else if (para is RanorexScriptGenerationParams)
            {
                re = new RanorexScriptGenerationParams();
                ((RanorexScriptGenerationParams)re).CopyAttributesFrom(para as RanorexScriptGenerationParams);
            }
            else if (para is ValidationUCScriptGenerationParams)
            {
                re = new RanorexValidationUCScriptGenerationParams();
                ((ValidationUCScriptGenerationParams)re).CopyAttributesFrom(para as ValidationUCScriptGenerationParams);
            }
            else if (para is WaitValidateScriptGenerationParams)
            {
                re = new RanorexWaitValidateScriptGenerationParams();
                ((WaitValidateScriptGenerationParams)re).CopyAttributesFrom(para as WaitValidateScriptGenerationParams);
            }
            else if (para is UserCodeScriptGenerationParams)
            {
                re = new RanorexUCScriptGenerationParams();
                ((UserCodeScriptGenerationParams)re).CopyAttributesFrom(para as UserCodeScriptGenerationParams);
            }
            else
            {
                re = new RanorexScriptGenerationParams();
                ((ScriptGenerationParams)re).CopyAttributesFrom(para as ScriptGenerationParams);
            }
            CopyAttributes(re, para);
            return(re);
        }
Beispiel #11
0
 public static void CopyAttributes(IScriptGenerationParams target, IScriptGenerationParams origin)
 {
     target.Color        = origin.Color;
     target.Id           = origin.Id;
     target.InstanceName = origin.InstanceName;
     if (origin.ListUIElements != null)
     {
         target.ListUIElements = origin.ListUIElements.Clone();
     }
     target.MyLog      = origin.MyLog; // TODO: consider to clone here
     target.PathToApp  = origin.PathToApp;
     target.ScreenName = origin.ScreenName;
     if (origin.SpecNode != null)
     {
         target.SpecNode = origin.SpecNode.Clone() as SpecNode;
     }
 }
Beispiel #12
0
        public override ScriptsExpression GenScripts(IScriptGenerationParams scriptGenerationParams)
        {
            var    param = scriptGenerationParams as WaitValidateScriptGenerationParams;
            string re    = GetComment(scriptGenerationParams);

            // generate procedure
            foreach (var userAction in param.ListUserActions)
            {
                if (re != "")
                {
                    re += NEW_LINE;
                }
                re += userAction.GenRawScripts(userAction.Params).Expression;
            }
            re += NEW_LINE;
            // generate while check
            re += GetWhileWaitScripts(param);
            return(new ScriptsExpression(re));
        }
Beispiel #13
0
        public override ScriptsExpression GenRawScripts(IScriptGenerationParams _params)
        {
            string re        = GetScriptAccessElement(_params.SpecNode.UIElement, _params.InstanceName);
            string attribute = _params.SpecNode.Attribute.Trim();

            if (attribute == null || attribute == "" || attribute.Equals("text", StringComparison.OrdinalIgnoreCase))
            {
                re += ".GetText();";
            }
            else if (attribute.Equals("width", StringComparison.OrdinalIgnoreCase))
            {
                re += ".GetWidth();";
            }
            else if (attribute.Equals("height", StringComparison.OrdinalIgnoreCase))
            {
                re += ".GetHeight();";
            }
            return(new ScriptsExpression(re));
        }
Beispiel #14
0
        public override ScriptsExpression GenScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string reStr = GetComment(scriptGenerationParams) + NEW_LINE;
            var    re    = GenRawScripts(scriptGenerationParams);

            if (re == null)
            {
                return(null);
            }
            re.Expression = reStr + re.Expression;

            string scriptAccessEle = GetScriptAccessElement(scriptGenerationParams.SpecNode.UIElement,
                                                            scriptGenerationParams.InstanceName);
            string tempStr        = scriptAccessEle;
            string attributeValue = this.expression;

            // combobox select item
            if (scriptGenerationParams.SpecNode.UIElement is ComboBoxElement &&
                int.TryParse(attributeValue.Trim(), out int n))
            {
            }
            else if (scriptGenerationParams.Color.Equals(PRE_CONDITION_COLOR))
            {
                string attribute = scriptGenerationParams.SpecNode.Attribute.Trim();
                if (attribute == null || attribute == "" || attribute.Equals("text", StringComparison.OrdinalIgnoreCase))
                {
                    tempStr += NEW_LINE + "Validate.TextEquals(" + scriptAccessEle + ", \"" + attributeValue + "\");";
                }
                else if (attribute.Equals("width", StringComparison.OrdinalIgnoreCase))
                {
                    tempStr += NEW_LINE + "Validate.WidthEquals(" + scriptAccessEle + ", " + attributeValue + ");";
                }
                else if (attribute.Equals("height", StringComparison.OrdinalIgnoreCase))
                {
                    tempStr += NEW_LINE + "Validate.HeightEquals(" + scriptAccessEle + ", " + attributeValue + ");";
                }
                re.Append(tempStr);
            }
            return(re);
        }
 public virtual ScriptsExpression HandleAndGenScripts(IScriptGenerationParams scriptGenerationParams, ScriptType scriptType = ScriptType.Normal)
 {
     if (scriptGenerationParams is UserCodeScriptGenerationParams ucParams)
     {
         Regex regex = new Regex("(?<class_group>.*?)\\.(?<func_group>.*)");
         Match match = regex.Match(expression);
         if (match.Success)
         {
             string   className   = match.Groups["class_group"].Value;
             string   funcName    = match.Groups["func_group"].Value;
             Regex    regex2      = new Regex("(?<func_group>.*)\\((?<params_group>.*)\\)$");
             Match    match2      = regex2.Match(funcName);
             int      paramsCount = 0;
             string[] _params     = null;
             if (match2.Success && match2.Groups["params_group"] != null &&
                 match2.Groups["params_group"].Value.Trim() != "")
             {
                 funcName    = match2.Groups["func_group"].Value;
                 _params     = match2.Groups["params_group"].Value.Split(',');
                 paramsCount = _params.Count();
             }
             bool voidReturn = true;
             if (Regex.IsMatch(ucParams.SpecNode.Expression, USER_CODE_WITH_VARIABLE_DECLARE))
             {
                 voidReturn = false;
             }
             else if (!Regex.IsMatch(ucParams.SpecNode.Expression, AbstractSpecUserAction.USER_CODE))
             {
                 logger.Error("Incorrect Expression: " + ucParams.SpecNode.Expression);
             }
             var re   = new UserCodeScriptsExpression();
             var pair = CheckFunctionExisted(ucParams.ClassExpressions, className, funcName, paramsCount, voidReturn);
             if (!pair.Item1)
             {
                 FunctionExpression func = new FunctionExpression(funcName);
                 if (_params != null)
                 {
                     foreach (string param in _params)
                     {
                         ParameterExpression parameterExpression = new ParameterExpression();
                         parameterExpression.setName(param);
                         if (func.getParams() == null)
                         {
                             func.setParams(new List <ParameterExpression>());
                         }
                         func.getParams().Add(parameterExpression);
                     }
                 }
                 func.setReturnDescription("no description");
                 ClassExpression classExpExisted = pair.Item2;
                 // if  class existed
                 if (classExpExisted != null)
                 {
                     Utils.MergeFunctions(classExpExisted.getListFunction(), func);
                 }
                 else
                 {
                     re.AppendNewAdditionFunc(className, func);
                 }
             }
             DoGenRawScripts(className, funcName, _params, voidReturn, ucParams, re, scriptType);
             return(re);
         }
         else
         {
             throw new NotImplementedException();
         }
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Beispiel #16
0
 //scripts without comment or try/catch
 public abstract ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams);
Beispiel #17
0
 public override ScriptsExpression GenScripts(IScriptGenerationParams scriptGenerationParams)
 {
     return(HandleAndGenScripts(scriptGenerationParams));
 }
Beispiel #18
0
        public override ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams)
        {
            string re = GetScriptCapture(scriptGenerationParams.SpecNode.UIElement, scriptGenerationParams.InstanceName);

            return(new ScriptsExpression(re));
        }
Beispiel #19
0
 public override ScriptsExpression GenRawScripts(IScriptGenerationParams _params)
 {
     return(new ScriptsExpression(GenRawScripts(_params, this.expression)));
 }
Beispiel #20
0
 public override ScriptsExpression GenRawScripts(IScriptGenerationParams scriptGenerationParams)
 {
     return(GetRawScripts(scriptGenerationParams, expression));
 }