public void CanGetSingleNewLineSymbol(string c, string r) { var code = c; var b = new BxlParser().Parse(code, "", BxlParserOptions.NoLexData); Assert.AreEqual(r, b.Element("e").Attr("x")); }
public void QPT78_Not_Supported_DoubleDot_In_Attribute(string code) { var parsed = new BxlParser().Parse(code); var e = parsed.Element("e"); var a = e.Attribute("x"); Assert.NotNull(a); Assert.AreEqual("a:a", a.Value); }
public void CanGetSingleNewLineSymbol(string c,string r){ var code =c; var b = new BxlParser().Parse(code, "", BxlParserOptions.NoLexData); Assert.AreEqual(r,b.Element("e").Attr("x")); }
public void MI_344_InvalidRegexParsing(){ var x = new BxlParser().Parse(@"x 'http://mstrok.ru/\\?id=\\d{4}\\d*$'"); Assert.AreEqual(@"http://mstrok.ru/\?id=\d{4}\d*$",x.Element("x").Attr("code")); }
public void KeepLeadingBraceInAttrValExpressions(string code, string test) { var x = new BxlParser().Parse(code); Assert.AreEqual(test, x.Element("a").Attr("code")); }
public void MI_344_InvalidRegexParsing() { var x = new BxlParser().Parse(@"x 'http://mstrok.ru/\\?id=\\d{4}\\d*$'"); Assert.AreEqual(@"http://mstrok.ru/\?id=\d{4}\d*$", x.Element("x").Attr("code")); }
private void processCreation() { #if OLDCREATION Entity = Regex.Match(Query, @"^\s*create\s+(\w+)").Groups[1].Value; Type = Entity; var applyes = Regex.Matches(Query,@"(?<name>\w+)\s*=\s*'(?<value>[^']*)'"); var dict = new Dictionary<string, string>(); foreach (Match applye in applyes) { dict[applye.Groups["name"].Value] = applye.Groups["value"].Value; } create(dict); //Query = "from " + Entity + " where Id = " + CreatedObjId; PropertyBag["result"] = new object[] { CreatedObj }; #else Query = Query.replace(@"/\*[\s\S]+?\*/", ""); var createscriptxml = new BxlParser().Parse(this.Query,"main"); var transform = createscriptxml.Element("transform"); if(null!=transform) { transform.Remove(); var file = transform.attr("code")+".xslt"; var path = myapp.files.Resolve(file,true); if(path.noContent()) { throw new Exception("cannot find transform file "+file); } var xslt = new XslCompiledTransform(); xslt.Load(path,XsltSettings.TrustedXslt,new XmlUrlResolver()); var sw = new StringWriter(); var arglist = new XsltArgumentList(); arglist.AddParam("timestamp","",DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss")); xslt.Transform(createscriptxml.CreateReader(),arglist,sw); createscriptxml = XElement.Parse(sw.ToString()); } var creations = createscriptxml.Elements("create"); var result = new List<HqlResult>(); foreach (var creation in creations) { var tree = creation.attr("tree"); var subresult = new HqlResult(); subresult.Entity = creation.attr("id"); subresult.Items = new List<object>(); if (creation.Elements(subresult.Entity).Count() == 0) { creation.Add(new XElement(subresult.Entity)); } var items = creation.Descendants(subresult.Entity); foreach (var item in items) { var selfattributes = item.Attributes(); var parentattributes = item.Parent.Attributes().Where( x => null == selfattributes.FirstOrDefault(y => y.Name.LocalName == x.Name.LocalName)); var allattributes = selfattributes.Union(parentattributes).Where(x => x.Name.LocalName != "id").ToArray(); var dict = new Dictionary<string, string>(); foreach (var o in allattributes) { dict[o.Name.LocalName] = o.Value; } if(tree.hasContent() && item.Parent!=null && item.Parent.Name.LocalName!="create") { dict[tree] = item.Parent.attr("code"); } create(dict, subresult.Entity); subresult.Items.Add(this.CreatedObj); } var cols = new HqlColumnLoader().GetColumns(subresult.Entity, View); subresult.Columns = cols; result.Add(subresult); } PropertyBag["results"] = result; PropertyBag["multiple"] = true; #endif }
private void InitializeEnvironment() { Console.WriteLine("in initialize!!!"); mainpwd = Path.Combine(FileSystemHelper.ResetTemporaryDirectory(), "pwd.bxls"); var fileuser = new User { Login = "******" }; var fadm = new User { Login = "******" }; var pwd = new PasswordManager(); pwd.SetPassword(fileuser, Fpass, salt: "fuser_salt"); pwd.SetPassword(fadm, FApass, salt: "fadm_salt"); var esuser = new User { Login = "******", Logable = true, Active = true, Expire = new DateTime(2020, 1, 1).ToUniversalTime(), Id = "esuser", CreateTime = new DateTime(2015, 1, 1).ToUniversalTime(), UpdateTime = new DateTime(2015, 1, 1).ToUniversalTime(), Roles = new [] { "role1" } }; pwd.SetPassword(esuser, Epass, salt: "esuser_salt"); ExecuteCommand("http://127.0.0.1:9200/" + esindex, method: "DELETE"); var storeesresult = ExecuteCommand("http://127.0.0.1:9200/" + esindex + "/pwd/esuser?refresh=true", esuser.ToString("store")); Console.WriteLine("ESSTORERESULT: " + storeesresult); if (null == storeesresult) { ignoreelastic = true; } var bxl = string.Format(@" class u1 prototype=pwd usr fuser salt='{0}' hash='{1}' logable active expire='2020-01-01T00:00:00+0000' role role2 usr fadm salt='{2}' hash='{3}' logable isadmin active expire='2020-01-01T00:00:00+0000' role role2 ", fileuser.Salt, fileuser.Hash, fadm.Salt, fadm.Hash); File.WriteAllText(mainpwd, bxl); var configbxl = @" class app cluster elastic default index=v2securetest appinfo domain='https://super.puper.com' home='home.html' name ='Супер-Пупер' authrule /public.html notauth=allow authrule /roled.html role=special authrule /spredir.html notauth=/public.html authrule /admin-* role=ADMIN messaging smtp support [email protected] default host=smtp.gmail.com port=587 [email protected] pass=a1234567! ssl=true queue elastic ref=default type=message logon default schema=localtrust guest trusted sense local=192.168.0.3 origin='http://127.0.0.1:9200' port=3450 trusted controller remote=192.168.0.2 local=192.168.0.3 token cookie=testauth secure key=1234567 elastic index='v2securetest' file path='TEST' "; var xml = new BxlParser().Parse(configbxl, options: BxlParserOptions.ExtractSingle); xml.Element("logon").Element("file").SetAttributeValue("path", mainpwd); if (ignoreelastic) { xml.Element("logon").Element("elastic").SetAttributeValue("active", "false"); } config = xml; }