public void extractObject1Test() { //TreeMap<string, CarOptions> tree_; //tree_ = new TreeMap<string, CarOptions>(); //tree_.put("hello", CarOptions.FogLights); Assert.AreEqual("FogLights", FormatHtml.extractObject("ToString()", CarOptions.FogLights)); }
public void processHtml1Test() { String locale_ = "LOCALE"; String folder_ = "messages"; String relative_ = "sample/file"; String content_ = "one=Description one\ntwo=Description two\nthree=desc <{0}>"; String html_ = "<html><body><ul><c.for var=\"s\" list=\"composite.strings\"><li>{s;}</li></c.for></ul></body></html>"; Map <String, String> files_ = new Map <String, String>(); files_.put(folder_ + "/" + locale_ + "/" + relative_ + ".properties", content_); BeanOne bean_ = new BeanOne(); bean_.getComposite().getStrings().Add("FIRST"); bean_.getComposite().getStrings().Add("SECOND"); bean_.getComposite().setInteger(5); Configuration conf_ = new Configuration(); conf_.setBeans(new Map <String, Bean>()); conf_.getBeans().put("bean_one", bean_); conf_.setMessagesFolder(folder_); conf_.setProperties(new Map <String, String>()); conf_.getProperties().put("msg_example", relative_); conf_.setTranslators(new Map <String, Translator>()); conf_.getTranslators().put("trans", new MyTranslator()); XmlDocument doc_ = XmlParser.parseSaxHtml(html_); String render_ = FormatHtml.processHtml(doc_.DocumentElement, conf_, files_, bean_); Assert.AreEqual("<html><body><ul><c.tmp><li>FIRST</li></c.tmp><c.tmp><li>SECOND</li></c.tmp></ul></body></html>", render_); }
public void processHtml18Test() { String locale_ = "LOCALE"; String folder_ = "messages"; String relative_ = "sample/file"; String content_ = "one=Description one\ntwo=Description two\nthree=desc <{0}>"; String html_ = "<html><body><c.select map=\"translations\"/></body></html>"; Map <String, String> files_ = new Map <String, String>(); files_.put(folder_ + "/" + locale_ + "/" + relative_ + ".properties", content_); BeanOne bean_ = new BeanOne(); bean_.getComposite().getStrings().Add("FIRST"); bean_.getComposite().getStrings().Add("SECOND"); bean_.getComposite().setInteger(5); Configuration conf_ = new Configuration(); conf_.setBeans(new Map <String, Bean>()); conf_.getBeans().put("bean_one", bean_); conf_.setMessagesFolder(folder_); conf_.setProperties(new Map <String, String>()); conf_.getProperties().put("msg_example", relative_); conf_.setTranslators(new Map <String, Translator>()); conf_.getTranslators().put("trans", new MyTranslator()); XmlDocument doc_ = XmlParser.parseSaxHtml(html_); String render_ = FormatHtml.processHtml(doc_.DocumentElement, conf_, files_, bean_); Assert.AreEqual("<html><body><select name=\"\" className=\"\"><option value=\"ONE\">1</option><option value=\"TWO\">2</option><option value=\"THREE\">3</option><option value=\"FOUR\">4</option><option value=\"FIVE\">5</option><option value=\"SIX\">6</option></select></body></html>", render_); }
public void extractObject3Test() { Pair <int, string> p_ = new Pair <int, string>(); p_.setFirst(0); p_.setSecond("str"); Assert.AreEqual("str", FormatHtml.extractObject("Util^Util^Pair^2^second", p_)); }
public void setObject1Test() { BeanOne b_ = new BeanOne(); MyList <EnumNumber> l_ = new MyList <EnumNumber>(); l_.Add(EnumNumber.ONE); FormatHtml.setObject(b_, "", "setCombobox", l_, "", "Util.Util.MyList`1[[FormatHtmlTests.EnumNumber, FormatHtmlTests]]", new MyList <long>()); MyList <EnumNumber> c_ = b_.getCombobox(); Assert.AreEqual(1, c_.size()); Assert.AreEqual(EnumNumber.ONE, c_.get(0)); }
public void processImports5Test() { String locale_ = "LOCALE"; String folder_ = "messages"; String relative_ = "sample/file"; String content_ = "one=Description one\ntwo=Description <a href=\"\">two</a>\nthree=desc <{0}>\nfour=''asp''"; String html_ = "<html bean=\"bean_one\"><body><c.import page=\"page2.html\"><a/><c.package name=\"FormatHtmlTests\"><a/><c.class name=\"BeanTwo\"><a/><c.field name=\"typedString\" value=\"message\"><a/></c.field></c.class></c.package></c.import></body></html>"; String htmlTwo_ = "<html bean=\"bean_two\"><body><a href=\"DELETE\" command=\"go\">{typedString}</a></body></html>"; Map <String, String> files_ = new Map <String, String>(); files_.put(folder_ + "/" + locale_ + "/" + relative_ + ".properties", content_); files_.put("page1.html", html_); files_.put("page2.html", htmlTwo_); BeanOne bean_ = new BeanOne(); bean_.getComposite().getStrings().Add("FIRST"); bean_.getComposite().getStrings().Add("SECOND"); bean_.getComposite().setInteger(5); bean_.getTree().put("ONE", 1); bean_.getTree().put("TWO", 2); bean_.setForms(new Map <String, Object>()); bean_.getForms().put("key", "sample_value"); BeanTwo beanTwo_ = new BeanTwo(); beanTwo_.setTypedString("TITLE"); beanTwo_.setForms(new Map <String, Object>()); Configuration conf_ = new Configuration(); conf_.setAssembly("FormatHtmlTests"); conf_.setBeans(new Map <String, Bean>()); conf_.getBeans().put("bean_one", bean_); conf_.getBeans().put("bean_two", beanTwo_); conf_.setMessagesFolder(folder_); conf_.setProperties(new Map <String, String>()); conf_.getProperties().put("msg_example", relative_); conf_.setTranslators(new Map <String, Translator>()); conf_.getTranslators().put("trans", new MyTranslator()); String render_ = FormatHtml.processImports(html_, conf_, locale_, files_); Assert.AreEqual("<html><body><a href=\"\" command=\"go\">Test {0}2</a></body></html>", render_); Assert.AreEqual(1, beanTwo_.getForms().size()); Assert.AreEqual("key", beanTwo_.getForms().getKeys().get(0)); Assert.AreEqual("sample_value", beanTwo_.getForms().values().get(0)); }
public void renameElement1Test() { XmlDocument doc_ = new XmlDocument(); XmlElement elt_ = doc_.CreateElement("main"); doc_.AppendChild(elt_); XmlElement main_ = elt_; elt_ = doc_.CreateElement("hello"); main_.AppendChild(elt_); elt_ = doc_.CreateElement("world"); main_.AppendChild(elt_); Console.WriteLine(XmlParser.toXml(doc_)); XmlElement other_ = FormatHtml.renameElement(elt_, "word"); Console.WriteLine(XmlParser.toXml(doc_)); Console.WriteLine(other_ == elt_); }
public void initializeSession() { foreach (String b in session.getBeans().getKeys()) { Bean bean_ = newBean(session.getBeans().getVal(b)); bean_.setForms(new Map <String, Object>()); bean_.setDataBase(dataBase); bean_.setLanguage(language); //bean_.setNavigation(this); session.getBeans().put(b, bean_); } String currentUrl_ = session.getFirstUrl(); String text_ = FormatHtml.loadPage(assembly, files, currentUrl_, resourcesFolder); String currentBeanName_ = FormatHtml.getCurrentBean(text_); htmlText = FormatHtml.processImports(text_, session, language, files, resourcesFolder); //For title currentBeanName = currentBeanName_; currentUrl = currentUrl_; setupText(htmlText); }
public void processHtmlJava1Test() { String locale_ = "LOCALE"; String folder_ = "messages"; String relative_ = "sample/file"; String content_ = "one=Description one\ntwo=Description <a href=\"\">two</a>\nthree=desc <{0}>\nfour=''asp''"; String html_ = "<html bean=\"bean_two\"><body><c.a value=\"sample/file,three\" param0=\"$typedString\">Content</c.a></body></html>"; Map <String, String> files_ = new Map <String, String>(); files_.put(folder_ + "/" + locale_ + "/" + relative_ + ".properties", content_); BeanOne bean_ = new BeanOne(); bean_.getComposite().getStrings().Add("FIRST"); bean_.getComposite().getStrings().Add("SECOND"); bean_.getComposite().setInteger(5); bean_.getTree().put("ONE", 1); bean_.getTree().put("TWO", 2); BeanTwo beanTwo_ = new BeanTwo(); beanTwo_.setTypedString("TITLE"); Configuration conf_ = new Configuration(); conf_.setBeans(new Map <String, Bean>()); conf_.getBeans().put("bean_one", bean_); conf_.getBeans().put("bean_two", beanTwo_); conf_.setMessagesFolder(folder_); conf_.setProperties(new Map <String, String>()); conf_.getProperties().put("msg_example", relative_); conf_.setTranslators(new Map <String, Translator>()); conf_.getTranslators().put("trans", new MyTranslator()); String render_ = FormatHtml.processHtmlJava(html_, conf_, locale_, files_); Assert.AreEqual("<html><body><a value=\"sample/file,three\" param0=\"$typedString\" title=\"desc &lt;TITLE2&gt;\">Content</a></body></html>", render_); Assert.AreEqual("TITLE2", beanTwo_.getTypedString()); }
public void processAnchorRequest(String _anchorRef) { String textToBeChanged_; Bean bean_; Map <String, Object> forms_; String currentUrl_; String currentBeanName_; if (_anchorRef.Contains(CALL_METHOD)) { Regex pattern_ = new Regex(REG_EXP_ARGS); int indexPoint_ = _anchorRef.IndexOf(DOT); String action_ = _anchorRef .Substring(indexPoint_ + 1); String key_ = action_.replaceAll(REG_EXP_INT, EMPTY_STRING); Match match_ = pattern_.Match(action_); String argsString_ = EMPTY_STRING; if (match_.Success) { argsString_ = match_.Groups[1].Value; //argsString_ = match_.Value; } MyList <long> args_ = new MyList <long>(); foreach (String l in StringList.splitStrings(argsString_, COMMA)) { if (l.isEmpty()) { continue; } args_.Add(long.Parse(l)); } String command_ = StringList.getFirstToken(action_, BEGIN_ARGS); int begin_ = _anchorRef.IndexOf(CALL_METHOD) + 1; String beanName_ = _anchorRef .Substring(begin_, indexPoint_ - begin_); bean_ = session.getBeans().getVal(beanName_); Object return_ = FormatHtml.invokeMethodWithNumbers( bean_, command_, args_.ToArray()); forms_ = bean_.getForms(); String urlDest_ = currentUrl; if (return_ != null) { urlDest_ = session.getNavigation() .getVal(beanName_ + DOT + key_) .getVal(return_.ToString()); if (urlDest_ == null) { urlDest_ = currentUrl; } } foreach (String b in session.getBeans().getKeys()) { if (!reinitBean(urlDest_, beanName_, b)) { continue; } bean_ = session.getBeans().getVal(b); bean_ = newBean(bean_); bean_.setForms(forms_); session.getBeans().put(b, bean_); } currentUrl_ = urlDest_; textToBeChanged_ = FormatHtml.loadPage(assembly, files, StringList.getFirstToken(urlDest_, REF_TAG), resourcesFolder); currentBeanName_ = FormatHtml .getCurrentBean(textToBeChanged_); bean_ = session.getBeans().getVal(currentBeanName_); bean_.setForms(forms_); textToBeChanged_ = FormatHtml.processImports( textToBeChanged_, session, language, files, resourcesFolder); currentBeanName = currentBeanName_; currentUrl = currentUrl_; setupText(textToBeChanged_); return; } if (_anchorRef.isEmpty()) { return; } bean_ = session.getBeans().getVal(currentBeanName); forms_ = bean_.getForms(); foreach (String b in session.getBeans().getKeys()) { if (!reinitBean(_anchorRef, currentBeanName, b)) { continue; } bean_ = session.getBeans().getVal(b); bean_ = newBean(bean_); bean_.setForms(forms_); session.getBeans().put(b, bean_); } currentUrl_ = _anchorRef; textToBeChanged_ = FormatHtml.loadPage(assembly, files, StringList.getFirstToken(_anchorRef, REF_TAG), resourcesFolder); currentBeanName_ = FormatHtml .getCurrentBean(textToBeChanged_); bean_ = session.getBeans().getVal(currentBeanName_); bean_.setForms(forms_); textToBeChanged_ = FormatHtml.processImports( textToBeChanged_, session, language, files, resourcesFolder); currentBeanName = currentBeanName_; currentUrl = currentUrl_; setupText(textToBeChanged_); }
private void processFormErrors(XmlDocument _doc, XmlElement _formElement, Map <String, String> _query, Map <String, String> _errors, Map <String, Object[]> _errorsArgs) { //begin deleting previous errors XmlNodeList spansForm_ = _formElement.GetElementsByTagName(TAG_SPAN); int lengthSpansForom_ = spansForm_.Count; for (int j = List.FIRST_INDEX; j < lengthSpansForom_; j++) { XmlElement elt_ = (XmlElement)spansForm_.Item(j); if (!elt_.HasAttribute(ATTRIBUTE_FOR)) { continue; } XmlNodeList children_ = elt_.ChildNodes; int ch_ = children_.Count; for (int i = List.FIRST_INDEX; i < ch_; i++) { elt_.RemoveChild(children_.Item(i)); } XmlText text_ = _doc.CreateTextNode(FormatHtml.SPACE); elt_.AppendChild(text_); } //end deleting previous errors foreach (String i in _errors.getKeys()) { XmlNodeList spans_ = _formElement.GetElementsByTagName(TAG_SPAN); int lengthSpans_ = spans_.Count; for (int j = List.FIRST_INDEX; j < lengthSpans_; j++) { XmlElement elt_ = (XmlElement)spans_.Item(j); if (!elt_.GetAttribute(ATTRIBUTE_FOR).Equals(i)) { continue; } elt_.RemoveChild(elt_.ChildNodes.Item(0)); String error_ = _errors.getVal(i); if (!elt_.GetAttribute(ATTRIBUTE_VALUE_MESSAGE).isEmpty()) { error_ = FormatHtml.formatErrorMessage(session, elt_.GetAttribute(ATTRIBUTE_VALUE_MESSAGE), language, files, resourcesFolder, _errorsArgs.getVal(i)); } XmlText text_ = _doc.CreateTextNode(error_); elt_.AppendChild(text_); } } XmlNodeList inputs_ = _doc.GetElementsByTagName(TAG_INPUT); int lengthInputs_ = inputs_.Count; for (int i = List.FIRST_INDEX; i < lengthInputs_; i++) { XmlElement elt_ = (XmlElement)inputs_.Item(i); foreach (String k in _query.getKeys()) { if (!elt_.GetAttribute(ATTRIBUTE_NAME).Equals(k)) { continue; } if (elt_.GetAttribute(ATTRIBUTE_TYPE).Equals(TEXT)) { elt_.SetAttribute(ATTRIBUTE_VALUE, _query.getVal(k)); continue; } if (elt_.GetAttribute(ATTRIBUTE_TYPE).Equals(NUMBER)) { elt_.SetAttribute(ATTRIBUTE_VALUE, _query.getVal(k)); continue; } if (elt_.GetAttribute(ATTRIBUTE_TYPE).Equals(CHECKBOX)) { if (_query.getVal(k).Equals(ON)) { elt_.SetAttribute(CHECKED, CHECKED); } else { elt_.RemoveAttribute(CHECKED); } continue; } } } inputs_ = _doc.GetElementsByTagName(TAG_SELECT); lengthInputs_ = inputs_.Count; for (int i = List.FIRST_INDEX; i < lengthInputs_; i++) { XmlElement elt_ = (XmlElement)inputs_.Item(i); foreach (String k in _query.getKeys()) { if (!elt_.GetAttribute(ATTRIBUTE_NAME).Equals(k)) { continue; } XmlNodeList options_ = elt_.GetElementsByTagName(TAG_OPTION); int optionsLen_ = options_.Count; for (int j = List.FIRST_INDEX; j < optionsLen_; j++) { XmlElement option_ = (XmlElement)options_.Item(j); if (option_.GetAttribute(ATTRIBUTE_VALUE).Equals(_query.getVal(k))) { option_.SetAttribute(SELECTED, SELECTED); } else { option_.RemoveAttribute(SELECTED); } } } } setupText(XmlParser.toHtml(_doc)); }
private void updateBean(Map <String, String> _inputClasses, Map <String, String> _changing, Map <String, String> _query, Map <String, String> _varMethods) { Type strType_ = typeof(string); foreach (String k in _query.getKeys()) { if (k.isEmpty()) { continue; } String simpleKey_ = k; String beanName_ = k.Substring(0, k.IndexOf(DOT)); Bean bean_ = session.getBeans().getVal(beanName_); String v_ = _query.getVal(k); String varMethod_ = _varMethods.getVal(k); simpleKey_ = k.Substring(k.IndexOf(DOT) + 1); Object obj_ = FormatHtml.extractObject(simpleKey_, bean_); Match m_ = new Regex(REG_EXP_POSITIVE_INT).Match(simpleKey_); MyList <long> indexes_ = new MyList <long>(); if (m_.Success) { int nb_ = m_.Groups.Count; for (int i = 1; i <= nb_; i++) { indexes_.Add(long.Parse(m_.Groups[i].Value)); } } String changingValue_ = EMPTY_STRING; if (_changing.contains(k)) { String method_ = _changing.getVal(k); try { //checking for existence of method_ in the bean class bean_.GetType().GetMethod(method_, new Type[] { typeof(ValueChangeEvent) }); changingValue_ = method_; } catch (Exception) { } } String className_ = _inputClasses.getVal(k); if (className_.StartsWith(".")) { className_ = session.getAssembly() + className_; } className_ = className_.Replace(".]", session.getAssembly() + "]"); if (obj_ == null) { //case where it is better to test on class of the value Type class_ = Constants.classForName(className_); if (class_.IsEnum) { bool success_ = false; //Enum foreach (Enum o in class_.GetEnumValues()) { if (o.name().Equals(v_)) { //The field value is an enum value FormatHtml.setObject(bean_, simpleKey_, varMethod_, o, changingValue_, className_, indexes_); success_ = true; break; } } if (!success_) { //throw new InexistingValueForEnum(v_, class_.Name); throw new InexistingValueForEnum(); } continue; } /*try { * bool success_ = false; * //Enum * for (Enum<?> o : class_.asSubclass(Enum.class).getEnumConstants()) { * if (o.name().equals(v_)) { * //The field value is an enum value * FormatHtml.setObject(bean_, simpleKey_, varMethod_, o, * changingValue_, className_, indexes_); * success_ = true; * break; * } * } * if (!success_) { * throw new InexistingValueForEnum(v_, class_.getName()); * } * continue; * } catch (ClassCastException e) { * }*/ //Boolean if (class_ == typeof(Boolean)) { FormatHtml.setObject(bean_, simpleKey_, varMethod_, v_.Equals(ON), changingValue_, className_, indexes_); continue; } //Number if (class_.IsValueType) { MethodInfo methNb_ = Constants.getParseMethod(class_); //ConstructorInfo c_ = class_.GetConstructor(new Type[] { strType_ }); object objNew_ = methNb_.Invoke(null, new object[] { v_ }); FormatHtml.setObject(bean_, simpleKey_, varMethod_, objNew_, changingValue_, className_, indexes_); continue; } //Number /*try { * class_.asSubclass(Number.class); * FormatHtml.setObject(bean_, simpleKey_, varMethod_, class_ * .getConstructor(String.class) * .newInstance(v_), changingValue_, * className_, indexes_); * continue; * } catch (ClassCastException e) { * }*/ //Primitivable if (typeof(Primitivable).IsAssignableFrom(class_)) { ConstructorInfo c_ = class_.GetConstructor(new Type[] { strType_ }); object objNew_ = c_.Invoke(new object[] { v_ }); FormatHtml.setObject(bean_, simpleKey_, varMethod_, objNew_, changingValue_, className_, indexes_); continue; } /*try { * class_.asSubclass(Primitivable.class); * FormatHtml.setObject(bean_, simpleKey_, varMethod_, class_ * .getConstructor(String.class) * .newInstance(v_), changingValue_, * className_, indexes_); * continue; * } catch (ClassCastException e) { * }*/ FormatHtml.setObject(bean_, simpleKey_, varMethod_, v_, changingValue_, className_, indexes_); continue; } //Enum if (obj_ is Enum) { bool success_ = false; foreach (Enum o in obj_.GetType().GetEnumValues()) { if (o.name().Equals(v_)) { //The field value is an enum value FormatHtml.setObject(bean_, simpleKey_, varMethod_, o, changingValue_, className_, indexes_); success_ = true; break; } } /*for (Enum<?> o : obj_.getClass().asSubclass(Enum.class) * .getEnumConstants()) { * if (o.name().equals(v_)) { * FormatHtml.setObject(bean_, simpleKey_, varMethod_, o, * changingValue_, className_, indexes_); * success_ = true; * break; * } * }*/ /*if (!success_) { * throw new InexistingValueForEnum(v_, obj_.getClass().getName()); * }*/ if (!success_) { //throw new InexistingValueForEnum(v_, class_.Name); throw new InexistingValueForEnum(); } continue; } //Boolean if (obj_ is Boolean) { FormatHtml.setObject(bean_, simpleKey_, varMethod_, v_.Equals(ON), changingValue_, className_, indexes_); continue; } //Number, Primitivable if (obj_.GetType().IsValueType) { MethodInfo methNb_ = Constants.getParseMethod(obj_.GetType()); //ConstructorInfo c_ = obj_.GetType().GetConstructor(new Type[] { strType_ }); object objNew_ = methNb_.Invoke(null, new object[] { v_ }); FormatHtml.setObject(bean_, simpleKey_, varMethod_, objNew_, changingValue_, className_, indexes_); continue; } if (obj_ is Primitivable) { ConstructorInfo c_ = obj_.GetType().GetConstructor(new Type[] { strType_ }); object objNew_ = c_.Invoke(new object[] { v_ }); FormatHtml.setObject(bean_, simpleKey_, varMethod_, objNew_, changingValue_, className_, indexes_); continue; } FormatHtml.setObject(bean_, simpleKey_, varMethod_, v_, changingValue_, className_, indexes_); } }
public void extractObject4Test() { Assert.AreEqual("ONE", FormatHtml.extractObject("FormatHtmlTests^FormatHtmlTests^BeanOne^selectedString", new BeanOne())); }