public void ImplicitContent() { XElement element = new XElement("Control", new XAttribute("name", "Foo"), new XText("Hello") ); MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element)); Assert.AreEqual("Hello", ((MarkupHtmlElement)c.Content).Html); }
public void ExplicitTag() { XElement element = new XElement("Control", new XAttribute("name", "Foo"), new XAttribute("tag", "span") ); MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element)); Assert.AreEqual("span", c.Tag); }
public void ControlClass() { XElement element = new XElement("Control", new XAttribute("name", "Minimal") ); MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element)); Assert.AreEqual("Minimal", c.Name); Assert.AreEqual("Control", c.BaseClassName); }
public void ControlWithNoScript() { MarkupControlClass c = new MarkupControlClass() { // BaseClassName = "Control", Name = "Foo" }; string compiledCss = CssProcessor.CssForClass(c); Assert.AreEqual(String.Empty, compiledCss); }
/// <summary> /// Parse the Quick markup document. /// </summary> public static MarkupControlClass Compile(string markup) { // Preprocess to extract any script and/or style tags. string script; string style; string processed = PreprocessMarkup(markup, out script, out style); // Parse the remaining (processed) source. XElement controlElement = GetControlElement(processed); MarkupControlInstance controlInstance = new MarkupControlInstance(controlElement); MarkupControlClass controlClass = new MarkupControlClass(controlInstance, script, style); return controlClass; }
/// <summary> /// Parse the Quick markup document. /// </summary> public static MarkupControlClass Compile(string markup) { // Preprocess to extract any script and/or style tags. string script; string style; string processed = PreprocessMarkup(markup, out script, out style); // Parse the remaining (processed) source. XDocument document = GetDocument(processed); IEnumerable<XComment> comments = GetComments(document); XElement controlElement = GetControlElement(document); MarkupControlInstance controlInstance = new MarkupControlInstance(controlElement); MarkupControlClass controlClass = new MarkupControlClass(controlInstance, script, style); AddCommentsToClass(controlClass, comments); return controlClass; }
public static string CssForClass(MarkupControlClass c) { if (c.Style == null) { return String.Empty; } string styles = c.Style.Trim(); return styles.Length == 0 ? String.Empty : Template.Format( "/*** {ClassName} ***/\n\n{Styles}\n\n", new { ClassName = c.Name, Styles = AddClassNameToSelectors(c.Name, styles) }); }
public void Prototype() { XElement element = new XElement("Control", new XAttribute("name", "Foo"), new XElement("prototype", new XElement("Button", new XAttribute("content", "Hello") ) ) ); MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element)); MarkupControlInstance prototype = c.Prototype; Assert.AreEqual("Button", prototype.ClassName); Assert.AreEqual("Hello", ((MarkupHtmlElement)prototype.Properties["content"]).Html); }
private static void AddCommentsToClass(MarkupControlClass controlClass, IEnumerable<XComment> comments) { StringBuilder s = new StringBuilder(); foreach (XComment comment in comments) { if (s.Length > 0) { s.AppendLine(); } s.Append(comment.Value); } controlClass.Comments = s.ToString(); }