public OptionSettings(string testPath) { _localSuitePath = testPath; _testSuites = SvgTestSuite.Create(); // For the start the default is selected var selectedSuite = SvgTestSuite.GetDefault(_testSuites); if (selectedSuite != null) { if (string.IsNullOrWhiteSpace(testPath)) { _localSuitePath = selectedSuite.LocalSuitePath; } _webSuitePath = selectedSuite.WebSuitePath; } if (!Directory.Exists(_localSuitePath)) { Directory.CreateDirectory(_localSuitePath); } _theme = DockingTheme.LightTheme; }
private bool LoadFile(Stream stream, SvgTestInfo testInfo) { Regex rgx = new Regex("\\s+"); testTitle.Text = testInfo.Title; testDescrition.Text = rgx.Replace(testInfo.Description, " ").Trim(); testFilePath.Text = _svgFilePath; btnFilePath.Enabled = true; XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = false; settings.IgnoreComments = true; settings.IgnoreProcessingInstructions = true; settings.DtdProcessing = DtdProcessing.Parse; StringBuilder textBuilder = new StringBuilder(); textBuilder.AppendLine("<html>"); textBuilder.AppendLine("<head>"); textBuilder.AppendLine("<title>About Test</title>"); textBuilder.AppendLine("</head>"); textBuilder.AppendLine("<body>"); textBuilder.AppendLine("<div style=\"padding:0px;margin:0px 0px 15px 0px;\">"); SvgTestSuite selectedTestSuite = null; if (_optionSettings != null) { selectedTestSuite = _optionSettings.SelectedTestSuite; } if (selectedTestSuite == null) { selectedTestSuite = SvgTestSuite.GetDefault(SvgTestSuite.Create()); } int majorVersion = selectedTestSuite.MajorVersion; int minorVersion = selectedTestSuite.MinorVersion; var paraStyle = new StringBuilder(); paraStyle.Append("padding:3px;"); paraStyle.Append("margin:0px;"); var paraTag = string.Format("<p style=\"{0}\">", paraStyle); var tableStyle = new StringBuilder(); tableStyle.Append("border:1px solid gray;"); tableStyle.AppendFormat("margin:{0}px {1}px {2}px {3}px;", 16, 16, 16, 16); // tableStyle.Append("width:75%;"); var tableTag = string.Format("<table style=\"{0}\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">", tableStyle); tableStyle.Length = 0; // tableStyle.Append("border:1px solid gray;"); tableStyle.Append("font-weight:bold;"); tableStyle.Append("font-size:16px;"); tableStyle.Append("text-align:center;"); var cellTag = string.Format("<td style=\"{0}\">", tableStyle); using (XmlReader reader = XmlReader.Create(stream, settings)) { if (majorVersion == 1 && minorVersion == 1) { var titleStyle = new StringBuilder(); titleStyle.Append("font-weight:bold;"); titleStyle.Append("font-size:14px;"); titleStyle.Append("padding:10px 0px 10px 0px;"); titleStyle.Append("margin:0px;"); if (reader.ReadToFollowing("d:SVGTestCase")) { _testCase = new SvgTestCase(); while (reader.Read()) { string nodeName = reader.Name; XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { if (string.Equals(nodeName, "d:operatorScript", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(string.Format("<p style=\"{0}\">Operator Script</p>", titleStyle)); textBuilder.AppendLine(inputText); } else if (string.Equals(nodeName, "d:passCriteria", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(string.Format("<p style=\"{0}\">Pass Criteria</p>", titleStyle)); textBuilder.AppendLine(inputText); } else if (string.Equals(nodeName, "d:testDescription", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(string.Format("<p style=\"{0}\">Test Description</p>", titleStyle)); textBuilder.AppendLine(inputText); _testCase.Paragraphs.Add(inputText); } } else if (nodeType == XmlNodeType.EndElement && string.Equals(nodeName, "SVGTestCase", StringComparison.OrdinalIgnoreCase)) { break; } } } } else if (majorVersion == 1 && minorVersion == 2) { if (reader.ReadToFollowing("SVGTestCase")) { _testCase = new SvgTestCase(); while (reader.Read()) { string nodeName = reader.Name; XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { if (string.Equals(nodeName, "d:OperatorScript", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(inputText); } else if (string.Equals(nodeName, "d:PassCriteria", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(inputText); } else if (string.Equals(nodeName, "d:TestDescription", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); inputText = inputText.Replace("<p>", paraTag); inputText = inputText.Replace("<table>", tableTag); inputText = inputText.Replace("<th>", cellTag); inputText = inputText.Replace("</th>", "</td>"); textBuilder.AppendLine(inputText); _testCase.Paragraphs.Add(inputText); } } else if (nodeType == XmlNodeType.EndElement && string.Equals(nodeName, "SVGTestCase", StringComparison.OrdinalIgnoreCase)) { break; } } } } else { if (reader.ReadToFollowing("SVGTestCase")) { _testCase = new SvgTestCase(); while (reader.Read()) { string nodeName = reader.Name; XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { if (string.Equals(nodeName, "OperatorScript", StringComparison.OrdinalIgnoreCase)) { string revisionText = reader.GetAttribute("version"); if (!string.IsNullOrWhiteSpace(revisionText)) { revisionText = revisionText.Replace("$", ""); _testCase.Revision = revisionText.Trim(); } string nameText = reader.GetAttribute("testname"); if (!string.IsNullOrWhiteSpace(nameText)) { _testCase.Name = nameText.Trim(); } } else if (string.Equals(nodeName, "Paragraph", StringComparison.OrdinalIgnoreCase)) { string inputText = reader.ReadInnerXml().Replace(NamespaceText, string.Empty); string paraText = rgx.Replace(inputText, " ").Trim(); textBuilder.AppendLine("<p>" + paraText + "</p>"); _testCase.Paragraphs.Add(inputText); } } else if (nodeType == XmlNodeType.EndElement && string.Equals(nodeName, "SVGTestCase", StringComparison.OrdinalIgnoreCase)) { break; } } } } } textBuilder.AppendLine("</div>"); textBuilder.AppendLine("</body>"); textBuilder.AppendLine("</html>"); testDetailsDoc.Text = textBuilder.ToString(); return(true); }