public Tooltip(string tooltipText, string innerText, string backgroundColor, string id, double width, string href = "") { Style = GetStyle(); var strWr = new StringWriter(); using (var writer = new HtmlTextWriter(strWr)) { writer.AddAttribute("data-tooltip", tooltipText); writer.AddAttribute(HtmlTextWriterAttribute.Class, "tooltip"); writer.AddAttribute(HtmlTextWriterAttribute.Id, id); writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, backgroundColor); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, width.ToString("00.000", CultureInfo.InvariantCulture) + @"%"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (!href.Equals("")) { var button = new OpenButton("", href, backgroundColor); writer.Write(button.ButtonHtml); } writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "inline-block"); writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "hidden"); writer.AddAttribute(HtmlTextWriterAttribute.Id, "tooltip-item-inner-text"); writer.RenderBeginTag(HtmlTextWriterTag.A); if (innerText.Contains(Environment.NewLine)) { var lines = innerText.Split(new[] { Environment.NewLine }, StringSplitOptions.None); foreach (var line in lines) { writer.Write(line); writer.AddTag(HtmlTextWriterTag.Br); } } else { writer.Write(innerText); } writer.RenderEndTag(); //A writer.RenderEndTag(); //DIV } HtmlCode = strWr.ToString(); }
public NunitTestHtml(NunitGoTest nunitGoTest) { ModalWindowsHtml = ""; Style = GetStyle(); BackgroundColor = nunitGoTest.GetBackgroundColor(); var strWr = new StringWriter(); using (var writer = new HtmlTextWriter(strWr)) { writer.AddStyleAttribute(HtmlTextWriterStyle.Left, "0%"); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "test-window"); writer.AddAttribute(HtmlTextWriterAttribute.Title, Title); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Id, Id); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddStyleAttribute(HtmlTextWriterStyle.Margin, "1% 2% 3% 97%"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(new CloseButton("Back", "./../../" + Output.Files.TestListFile).ButtonHtml); writer.RenderEndTag(); //DIV writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Test full name: "); writer.Write(nunitGoTest.FullName); writer.RenderEndTag(); //P writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Test name: "); writer.Write(nunitGoTest.Name); writer.RenderEndTag(); //P writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, nunitGoTest.GetBackgroundColor()); writer.RenderBeginTag(HtmlTextWriterTag.P); writer.RenderBeginTag(HtmlTextWriterTag.B); writer.Write("Test result: "); writer.RenderEndTag(); //B writer.Write(nunitGoTest.Result); writer.RenderEndTag(); //P writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Test duration: "); writer.Write(nunitGoTest.TestDuration); writer.RenderEndTag(); //P writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Time period: "); var start = nunitGoTest.DateTimeStart.ToString("dd.MM.yy HH:mm:ss.fff"); var end = nunitGoTest.DateTimeFinish.ToString("dd.MM.yy HH:mm:ss.fff"); writer.Write(start + " - " + end); writer.RenderEndTag(); //P writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Screenshots: "); writer.Write(nunitGoTest.Screenshots.Count); writer.RenderEndTag(); //P var screens = nunitGoTest.Screenshots.OrderBy(x => x.Date); foreach (var screenshot in screens) { writer.Write("Screenshot (Date: " + screenshot.Date.ToString("dd.MM.yy HH:mm:ss.fff") + "):"); writer.AddAttribute(HtmlTextWriterAttribute.Href, @"./../../Screenshots/" + screenshot.Name); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%"); writer.AddAttribute(HtmlTextWriterAttribute.Src, @"./../../Screenshots/" + screenshot.Name); writer.AddAttribute(HtmlTextWriterAttribute.Alt, screenshot.Name); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag();//IMG writer.RenderEndTag();//A } if (nunitGoTest.HasOutput) { var openButton = new OpenButton("View full log", nunitGoTest.LogHref, Colors.OpenLogsButtonBackground); writer.Write(openButton.ButtonHtml); //writer.Write(GenerateHtmlView(nunitGoTest.AttachmentsPath + Structs.Outputs.Out)); } if (!nunitGoTest.IsSuccess()) { writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Stack trace: "); writer.Write(GenerateTxtView(nunitGoTest.TestStackTrace)); writer.RenderEndTag(); //P writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Message: "); writer.Write(GenerateTxtView(nunitGoTest.TestMessage)); writer.RenderEndTag(); //P } writer.RenderBeginTag(HtmlTextWriterTag.P); writer.AddTag(HtmlTextWriterTag.B, "Test guid: "); writer.Write(nunitGoTest.Guid); writer.RenderEndTag(); //P writer.RenderEndTag(); //DIV writer.RenderEndTag(); //DIV } HtmlCode = strWr.ToString(); }
private void BuildTreeFromSuites(HtmlTextWriter writer, IEnumerable<NunitGoSuite> suites) { foreach (var suite in suites) { var tests = suite.Tests; var id = GetSuiteId(); var allSuiteTests = suite.GetTests(); var count = allSuiteTests.Count(); var passedCount = allSuiteTests.Count(x => x.IsSuccess()); var labelName = suite.Name + " (Tests: " + passedCount + @"/" + count + ")"; writer.OpenTreeItem(labelName, id, "110%", suite.Tests.Count.Equals(0)); writer.RenderBeginTag(HtmlTextWriterTag.Ul); foreach (var nunitGoTest in tests) { var testId = nunitGoTest.Guid.ToString(); var htmlTest = new NunitTestHtml(nunitGoTest); var buttonText = nunitGoTest.Name + " (" + nunitGoTest.DateTimeStart.ToString("dd.MM.yy HH:mm:ss") + " - " + nunitGoTest.DateTimeFinish.ToString("dd.MM.yy HH:mm:ss") + ")"; var openButton = new OpenButton(buttonText, nunitGoTest.TestHrefRelative, htmlTest.BackgroundColor); writer.AddAttribute(HtmlTextWriterAttribute.Id, testId); writer.RenderBeginTag(HtmlTextWriterTag.Li); writer.AddAttribute(HtmlTextWriterAttribute.Title, nunitGoTest.Name); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(openButton.ButtonHtml); writer.RenderEndTag(); //A writer.RenderEndTag(); //LI } if (suite.Suites.Any()) { BuildTreeFromSuites(writer, suite.Suites); } writer.RenderEndTag(); //UL writer.RenderEndTag(); //LI writer.RenderEndTag(); //UL } }