diff --git a/.pipelines/ci/templates/build-powertoys-steps.yml b/.pipelines/ci/templates/build-powertoys-steps.yml index bfff3c7782..a06cb6514a 100644 --- a/.pipelines/ci/templates/build-powertoys-steps.yml +++ b/.pipelines/ci/templates/build-powertoys-steps.yml @@ -33,3 +33,16 @@ steps: msbuildArgs: ${{ parameters.additionalBuildArguments }} clean: true maximumCpuCount: true + +- task: VSTest@2 + inputs: + platform: '$(BuildPlatform)' + configuration: '$(BuildConfiguration)' + testSelector: 'testAssemblies' + testAssemblyVer2: | + **\PreviewPaneUnitTests.dll + **\UnitTests-SvgPreviewHandler.dll + **\UnitTests-PreviewHandlerCommon.dll + **\powerpreviewTest.dll + !**\*TestAdapter.dll + !**\obj\** diff --git a/PowerToys.sln b/PowerToys.sln index 3979c31e0c..a7366e334d 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -167,6 +167,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-MarkdownPreviewHa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgPreviewHandler", "src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj", "{DA425894-6E13-404F-8DCB-78584EC0557A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-SvgPreviewHandler", "src\modules\previewpane\UnitTests-SvgPreviewHandler\UnitTests-SvgPreviewHandler.csproj", "{060D75DA-2D1C-48E6-A4A1-6F0718B64661}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-PreviewHandlerCommon", "src\modules\previewpane\UnitTests-PreviewHandlerCommon\UnitTests-PreviewHandlerCommon.csproj", "{748417CA-F17E-487F-9411-CAFB6D3F4877}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreview", "src\modules\previewpane\powerpreview\powerpreview.vcxproj", "{217DF501-135C-4E38-BFC8-99D4821032EA}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreviewTest", "src\modules\previewpane\powerpreviewTest\powerpreviewTest.vcxproj", "{47310AB4-9034-4BD1-8D8B-E88AD21A171B}" @@ -301,6 +305,14 @@ Global {DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|x64.Build.0 = Debug|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.ActiveCfg = Release|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.Build.0 = Release|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.ActiveCfg = Debug|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.Build.0 = Debug|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.ActiveCfg = Release|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.Build.0 = Release|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.ActiveCfg = Debug|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.Build.0 = Debug|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.ActiveCfg = Release|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.Build.0 = Release|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.ActiveCfg = Debug|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.Build.0 = Debug|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Release|x64.ActiveCfg = Release|x64 @@ -348,6 +360,8 @@ Global {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB} = {2F305555-C296-497E-AC20-5FA1B237996A} {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A} = {2F305555-C296-497E-AC20-5FA1B237996A} {DA425894-6E13-404F-8DCB-78584EC0557A} = {2F305555-C296-497E-AC20-5FA1B237996A} + {060D75DA-2D1C-48E6-A4A1-6F0718B64661} = {2F305555-C296-497E-AC20-5FA1B237996A} + {748417CA-F17E-487F-9411-CAFB6D3F4877} = {2F305555-C296-497E-AC20-5FA1B237996A} {217DF501-135C-4E38-BFC8-99D4821032EA} = {2F305555-C296-497E-AC20-5FA1B237996A} {47310AB4-9034-4BD1-8D8B-E88AD21A171B} = {2F305555-C296-497E-AC20-5FA1B237996A} EndGlobalSection diff --git a/src/modules/previewpane/PreviewPaneUnitTests/MarkdownPreviewHandlerTest.cs b/src/modules/previewpane/PreviewPaneUnitTests/MarkdownPreviewHandlerTest.cs index 57da6164d7..e0ebaaf29e 100644 --- a/src/modules/previewpane/PreviewPaneUnitTests/MarkdownPreviewHandlerTest.cs +++ b/src/modules/previewpane/PreviewPaneUnitTests/MarkdownPreviewHandlerTest.cs @@ -18,93 +18,99 @@ namespace PreviewPaneUnitTests public void MarkdownPreviewHandlerControl__AddsBrowserToForm_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - - // Assert - Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); + // Assert + Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); + } } [TestMethod] public void MarkdownPreviewHandlerControl__AddsInfoBarToFormIfExternalImageLinkPresent_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - - // Assert - Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); + // Assert + Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); + } } [TestMethod] public void MarkdownPreviewHandlerControl__AddsInfoBarToFormIfHTMLImageTagIsPresent_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithHTMLImageTag.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithHTMLImageTag.txt"); - - // Assert - Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); + // Assert + Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 2); + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); + } } [TestMethod] public void MarkdownPreviewHandlerControl__DoesNotAddInfoBarToFormIfExternalImageLinkNotPresent_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithScript.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithScript.txt"); - - // Assert - Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 1); - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); + // Assert + Assert.AreEqual(markdownPreviewHandlerControl.Controls.Count, 1); + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); + } } [TestMethod] public void MarkdownPreviewHandlerControl__UpdatesWebBrowserSettings_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - - // Assert - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); - Assert.IsNotNull(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).DocumentText); - Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).Dock, DockStyle.Fill); - Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).IsWebBrowserContextMenuEnabled, false); - Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).ScriptErrorsSuppressed, true); - Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).ScrollBarsEnabled, true); - Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).AllowNavigation, false); + // Assert + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[0], typeof(WebBrowserExt)); + Assert.IsNotNull(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).DocumentText); + Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).Dock, DockStyle.Fill); + Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).IsWebBrowserContextMenuEnabled, false); + Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).ScriptErrorsSuppressed, true); + Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).ScrollBarsEnabled, true); + Assert.AreEqual(((WebBrowser)markdownPreviewHandlerControl.Controls[0]).AllowNavigation, false); + } } [TestMethod] public void MarkdownPreviewHandlerControl__UpdateInfobarSettings_WhenDoPreviewIsCalled() { // Arrange - MarkdownPreviewHandlerControl markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); + using (var markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl()) + { + // Act + markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - // Act - markdownPreviewHandlerControl.DoPreview("HelperFiles/MarkdownWithExternalImage.txt"); - - // Assert - Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); - Assert.IsNotNull(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Text); - Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Dock, DockStyle.Top); - Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).BorderStyle, BorderStyle.None); - Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).BackColor, Color.LightYellow); - Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Multiline, true); + // Assert + Assert.IsInstanceOfType(markdownPreviewHandlerControl.Controls[1], typeof(RichTextBox)); + Assert.IsNotNull(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Text); + Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Dock, DockStyle.Top); + Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).BorderStyle, BorderStyle.None); + Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).BackColor, Color.LightYellow); + Assert.AreEqual(((RichTextBox)markdownPreviewHandlerControl.Controls[1]).Multiline, true); + } } } } \ No newline at end of file diff --git a/src/modules/previewpane/PreviewPaneUnitTests/UnitTests-MarkdownPreviewHandler.csproj b/src/modules/previewpane/PreviewPaneUnitTests/UnitTests-MarkdownPreviewHandler.csproj index 47b1183b6a..db25b9acf7 100644 --- a/src/modules/previewpane/PreviewPaneUnitTests/UnitTests-MarkdownPreviewHandler.csproj +++ b/src/modules/previewpane/PreviewPaneUnitTests/UnitTests-MarkdownPreviewHandler.csproj @@ -95,10 +95,10 @@ 0.18.0 - 1.3.2 + 2.1.1 - 1.3.2 + 2.1.1 diff --git a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/FormHandlerControlTests.cs b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/FormHandlerControlTests.cs index c16c1e781d..29c565295a 100644 --- a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/FormHandlerControlTests.cs +++ b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/FormHandlerControlTests.cs @@ -21,157 +21,175 @@ namespace UnitTests_PreviewHandlerCommon public void FormHandlerControl_ShouldCreateHandle_OnIntialization() { // Arrange and act - var testFormHandlerControl = new TestFormControl(); - - // Assert - Assert.IsTrue(testFormHandlerControl.IsHandleCreated); + using (var testFormHandlerControl = new TestFormControl()) + { + // Assert + Assert.IsTrue(testFormHandlerControl.IsHandleCreated); + } } [TestMethod] public void FormHandlerControl_ShouldSetVisibleFalse_OnIntialization() { // Arrange and act - var testFormHandlerControl = new TestFormControl(); - - // Assert - Assert.IsFalse(testFormHandlerControl.Visible); + using (var testFormHandlerControl = new TestFormControl()) + { + // Assert + Assert.IsFalse(testFormHandlerControl.Visible); + } } [TestMethod] public void FormHandlerControl_ShouldSetFormBorderStyle_OnIntialization() { // Arrange and act - var testFormHandlerControl = new TestFormControl(); - - // Assert - Assert.AreEqual(FormBorderStyle.None, testFormHandlerControl.FormBorderStyle); + using (var testFormHandlerControl = new TestFormControl()) + { + // Assert + Assert.AreEqual(FormBorderStyle.None, testFormHandlerControl.FormBorderStyle); + } } [TestMethod] public void FormHandlerControl_ShouldReturnValidHandle_WhenGetHandleCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); + using (var testFormHandlerControl = new TestFormControl()) + { + // Act + var handle = testFormHandlerControl.GetHandle(); - // Act - var handle = testFormHandlerControl.GetHandle(); - - // Assert - Assert.AreEqual(testFormHandlerControl.Handle, handle); + // Assert + Assert.AreEqual(testFormHandlerControl.Handle, handle); + } } [TestMethod] public void FormHandlerControl_ShouldSetBackgroundColor_WhenSetBackgroundColorCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - var color = Color.Navy; + using (var testFormHandlerControl = new TestFormControl()) + { + var color = Color.Navy; - // Act - testFormHandlerControl.SetBackgroundColor(color); + // Act + testFormHandlerControl.SetBackgroundColor(color); - // Assert - Assert.AreEqual(color, testFormHandlerControl.BackColor); + // Assert + Assert.AreEqual(color, testFormHandlerControl.BackColor); + } } [TestMethod] public void FormHandlerControl_ShouldSetFont_WhenSetFontCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - var font = new Font("Arial", 20); + using (var testFormHandlerControl = new TestFormControl()) + { + var font = new Font("Arial", 20); - // Act - testFormHandlerControl.SetFont(font); + // Act + testFormHandlerControl.SetFont(font); - // Assert - Assert.AreEqual(font, testFormHandlerControl.Font); + // Assert + Assert.AreEqual(font, testFormHandlerControl.Font); + } } [TestMethod] public void FormHandlerControl_ShouldUpdateBounds_WhenSetRectCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - var bounds = new Rectangle(2, 2, 4, 4); + using (var testFormHandlerControl = new TestFormControl()) + { + var bounds = new Rectangle(2, 2, 4, 4); - // Act - testFormHandlerControl.SetRect(bounds); + // Act + testFormHandlerControl.SetRect(bounds); - // Assert - Assert.AreEqual(bounds, testFormHandlerControl.Bounds); + // Assert + Assert.AreEqual(bounds, testFormHandlerControl.Bounds); + } } - + [TestMethod] public void FormHandlerControl_ShouldSetTextColor_WhenSetTextColorCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - var color = Color.Navy; + using (var testFormHandlerControl = new TestFormControl()) + { + var color = Color.Navy; - // Act - testFormHandlerControl.SetTextColor(color); + // Act + testFormHandlerControl.SetTextColor(color); - // Assert - Assert.AreEqual(color, testFormHandlerControl.ForeColor); + // Assert + Assert.AreEqual(color, testFormHandlerControl.ForeColor); + } } [TestMethod] public void FormHandlerControl_ShouldClearAllControls_WhenUnloadCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - testFormHandlerControl.Controls.Add(new TextBox()); - testFormHandlerControl.Controls.Add(new RichTextBox()); + using (var testFormHandlerControl = new TestFormControl()) + { + testFormHandlerControl.Controls.Add(new TextBox()); + testFormHandlerControl.Controls.Add(new RichTextBox()); - // Act - testFormHandlerControl.Unload(); + // Act + testFormHandlerControl.Unload(); - // Assert - Assert.AreEqual(0, testFormHandlerControl.Controls.Count); + // Assert + Assert.AreEqual(0, testFormHandlerControl.Controls.Count); + } } [TestMethod] public void FormHandlerControl_ShouldSetVisibleFalse_WhenUnloadCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); + using (var testFormHandlerControl = new TestFormControl()) + { + // Act + testFormHandlerControl.Unload(); - // Act - testFormHandlerControl.Unload(); - - // Assert - Assert.IsFalse(testFormHandlerControl.Visible); + // Assert + Assert.IsFalse(testFormHandlerControl.Visible); + } } [TestMethod] public void FormHandlerControl_ShouldSetVisibletrue_WhenDoPreviewCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); + using (var testFormHandlerControl = new TestFormControl()) + { + // Act + testFormHandlerControl.DoPreview("valid-path"); - // Act - testFormHandlerControl.DoPreview("valid-path"); - - // Assert - Assert.IsTrue(testFormHandlerControl.Visible); + // Assert + Assert.IsTrue(testFormHandlerControl.Visible); + } } [TestMethod] public void FormHandlerControl_ShouldSetParentHandle_WhenSetWindowCalled() { // Arrange - var testFormHandlerControl = new TestFormControl(); - var parentFormWindow = new UserControl(); - var parentHwnd = parentFormWindow.Handle; - var rect = new Rectangle(2, 2, 4, 4); + using (var testFormHandlerControl = new TestFormControl()) + { + var parentFormWindow = new UserControl(); + var parentHwnd = parentFormWindow.Handle; + var rect = new Rectangle(2, 2, 4, 4); - // Act - testFormHandlerControl.SetWindow(parentHwnd, rect); - var actualParentHwnd = GetAncestor(testFormHandlerControl.Handle, 1); // GA_PARENT 1 + // Act + testFormHandlerControl.SetWindow(parentHwnd, rect); + var actualParentHwnd = GetAncestor(testFormHandlerControl.Handle, 1); // GA_PARENT 1 - // Assert - Assert.AreEqual(parentHwnd, actualParentHwnd); + // Assert + Assert.AreEqual(parentHwnd, actualParentHwnd); + } } // Gets the ancestor window: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getancestor diff --git a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/StreamBasedPreviewHandlerTests.cs b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/StreamBasedPreviewHandlerTests.cs index fd62317879..4f224dfa49 100644 --- a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/StreamBasedPreviewHandlerTests.cs +++ b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/StreamBasedPreviewHandlerTests.cs @@ -29,7 +29,7 @@ namespace UnitTests_PreviewHandlerCommon [DataTestMethod] [DataRow((uint)0)] [DataRow((uint)1)] - public void FileBasedPreviewHandler_ShouldSetFilePath_WhenInitializeCalled(uint grfMode) + public void StreamBasedPreviewHandler_ShouldSetStream_WhenInitializeCalled(uint grfMode) { // Arrange var streamBasedPreviewHandler = new TestStreamBasedPreviewHandler(); diff --git a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/UnitTests-PreviewHandlerCommon.csproj b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/UnitTests-PreviewHandlerCommon.csproj index 014f39fdda..eeaa8bd8cf 100644 --- a/src/modules/previewpane/UnitTests-PreviewHandlerCommon/UnitTests-PreviewHandlerCommon.csproj +++ b/src/modules/previewpane/UnitTests-PreviewHandlerCommon/UnitTests-PreviewHandlerCommon.csproj @@ -101,13 +101,13 @@ 4.13.1 - 1.3.2 + 2.1.1 - 1.3.2 + 2.1.1 - 4.5.2 + 4.5.4 diff --git a/src/modules/previewpane/UnitTests-SvgPreviewHandler/SvgPreviewControlTests.cs b/src/modules/previewpane/UnitTests-SvgPreviewHandler/SvgPreviewControlTests.cs index f81d217a83..b7a6936722 100644 --- a/src/modules/previewpane/UnitTests-SvgPreviewHandler/SvgPreviewControlTests.cs +++ b/src/modules/previewpane/UnitTests-SvgPreviewHandler/SvgPreviewControlTests.cs @@ -23,207 +23,223 @@ namespace UnitTests_SvgPreviewHandler public void SvgPreviewControl_ShouldAddExtendedBrowserControl_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(svgPreviewControl.Controls.Count, 1); - Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(WebBrowserExt)); + // Assert + Assert.AreEqual(svgPreviewControl.Controls.Count, 1); + Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(WebBrowserExt)); + } } [TestMethod] public void SvgPreviewControl_ShouldSetDocumentStream_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.IsNotNull(((WebBrowser)svgPreviewControl.Controls[0]).DocumentStream); + // Assert + Assert.IsNotNull(((WebBrowser)svgPreviewControl.Controls[0]).DocumentStream); + } } [TestMethod] public void SvgPreviewControl_ShouldDisableWebBrowserContextMenu_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).IsWebBrowserContextMenuEnabled, false); + // Assert + Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).IsWebBrowserContextMenuEnabled, false); + } } [TestMethod] public void SvgPreviewControl_ShouldFillDockForWebBrowser_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).Dock, DockStyle.Fill); + // Assert + Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).Dock, DockStyle.Fill); + } } [TestMethod] public void SvgPreviewControl_ShouldSetScriptErrorsSuppressedProperty_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).ScriptErrorsSuppressed, true); + // Assert + Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).ScriptErrorsSuppressed, true); + } } [TestMethod] public void SvgPreviewControl_ShouldSetScrollBarsEnabledProperty_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).ScrollBarsEnabled, true); + // Assert + Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).ScrollBarsEnabled, true); + } } [TestMethod] public void SvgPreviewControl_ShouldDisableAllowNavigation_WhenDoPreviewCalled() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); + using (var svgPreviewControl = new SvgPreviewControl()) + { + // Act + svgPreviewControl.DoPreview(GetMockStream("")); - // Act - svgPreviewControl.DoPreview(GetMockStream("")); - - // Assert - Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).AllowNavigation, false); + // Assert + Assert.AreEqual(((WebBrowser)svgPreviewControl.Controls[0]).AllowNavigation, false); + } } [TestMethod] public void SvgPreviewControl_ShouldAddValidInfoBar_IfSvgPreviewThrows() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); - var mockStream = new Mock(); - mockStream - .Setup(x => x.Read(It.IsAny(), It.IsAny(), It.IsAny())) - .Throws(new Exception()); + using (var svgPreviewControl = new SvgPreviewControl()) + { + var mockStream = new Mock(); + mockStream + .Setup(x => x.Read(It.IsAny(), It.IsAny(), It.IsAny())) + .Throws(new Exception()); - // Act - svgPreviewControl.DoPreview(mockStream.Object); - var textBox = svgPreviewControl.Controls[0] as RichTextBox; + // Act + svgPreviewControl.DoPreview(mockStream.Object); + var textBox = svgPreviewControl.Controls[0] as RichTextBox; - // Assert - Assert.IsFalse(string.IsNullOrWhiteSpace(textBox.Text)); - Assert.AreEqual(svgPreviewControl.Controls.Count, 1); - Assert.AreEqual(textBox.Dock, DockStyle.Top); - Assert.AreEqual(textBox.BackColor, Color.LightYellow); - Assert.IsTrue(textBox.Multiline); - Assert.IsTrue(textBox.ReadOnly); - Assert.AreEqual(textBox.ScrollBars, RichTextBoxScrollBars.None); - Assert.AreEqual(textBox.BorderStyle, BorderStyle.None); + // Assert + Assert.IsFalse(string.IsNullOrWhiteSpace(textBox.Text)); + Assert.AreEqual(svgPreviewControl.Controls.Count, 1); + Assert.AreEqual(textBox.Dock, DockStyle.Top); + Assert.AreEqual(textBox.BackColor, Color.LightYellow); + Assert.IsTrue(textBox.Multiline); + Assert.IsTrue(textBox.ReadOnly); + Assert.AreEqual(textBox.ScrollBars, RichTextBoxScrollBars.None); + Assert.AreEqual(textBox.BorderStyle, BorderStyle.None); + } } - [TestMethod] public void SvgPreviewControl_InfoBarWidthShouldAdjustWithParentControlWidthChanges_IfSvgPreviewThrows() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); - var mockStream = new Mock(); - mockStream - .Setup(x => x.Read(It.IsAny(), It.IsAny(), It.IsAny())) - .Throws(new Exception()); - svgPreviewControl.DoPreview(mockStream.Object); - var textBox = svgPreviewControl.Controls[0] as RichTextBox; - var incrementParentControlWidth = 5; - var intialParentWidth = svgPreviewControl.Width; - var intitialTextBoxWidth = textBox.Width; - var finalParentWidth = intialParentWidth + incrementParentControlWidth; + using (var svgPreviewControl = new SvgPreviewControl()) + { + var mockStream = new Mock(); + mockStream + .Setup(x => x.Read(It.IsAny(), It.IsAny(), It.IsAny())) + .Throws(new Exception()); + svgPreviewControl.DoPreview(mockStream.Object); + var textBox = svgPreviewControl.Controls[0] as RichTextBox; + var incrementParentControlWidth = 5; + var intialParentWidth = svgPreviewControl.Width; + var intitialTextBoxWidth = textBox.Width; + var finalParentWidth = intialParentWidth + incrementParentControlWidth; - // Act - svgPreviewControl.Width += incrementParentControlWidth; + // Act + svgPreviewControl.Width += incrementParentControlWidth; - // Assert - Assert.AreEqual(intialParentWidth, intitialTextBoxWidth); - Assert.AreEqual(finalParentWidth, textBox.Width); + // Assert + Assert.AreEqual(intialParentWidth, intitialTextBoxWidth); + Assert.AreEqual(finalParentWidth, textBox.Width); + } } [TestMethod] public void SvgPreviewControl_ShouldAddTextBox_IfBlockedElementsArePresent() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); - var svgBuilder = new StringBuilder(); - svgBuilder.AppendLine(""); - svgBuilder.AppendLine("\t"); - svgBuilder.AppendLine(""); + using (var svgPreviewControl = new SvgPreviewControl()) + { + var svgBuilder = new StringBuilder(); + svgBuilder.AppendLine(""); + svgBuilder.AppendLine("\t"); + svgBuilder.AppendLine(""); - // Act - svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); + // Act + svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); - // Assert - Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(RichTextBox)); - Assert.IsInstanceOfType(svgPreviewControl.Controls[1], typeof(WebBrowserExt)); - Assert.AreEqual(svgPreviewControl.Controls.Count, 2); + // Assert + Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(RichTextBox)); + Assert.IsInstanceOfType(svgPreviewControl.Controls[1], typeof(WebBrowserExt)); + Assert.AreEqual(svgPreviewControl.Controls.Count, 2); + } } [TestMethod] public void SvgPreviewControl_ShouldNotAddTextBox_IfNoBlockedElementsArePresent() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); - var svgBuilder = new StringBuilder(); - svgBuilder.AppendLine(""); - svgBuilder.AppendLine("\t"); - svgBuilder.AppendLine("\t"); - svgBuilder.AppendLine(""); + using (var svgPreviewControl = new SvgPreviewControl()) + { + var svgBuilder = new StringBuilder(); + svgBuilder.AppendLine(""); + svgBuilder.AppendLine("\t"); + svgBuilder.AppendLine("\t"); + svgBuilder.AppendLine(""); - // Act - svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); + // Act + svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); - // Assert - Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(WebBrowserExt)); - Assert.AreEqual(svgPreviewControl.Controls.Count, 1); + // Assert + Assert.IsInstanceOfType(svgPreviewControl.Controls[0], typeof(WebBrowserExt)); + Assert.AreEqual(svgPreviewControl.Controls.Count, 1); + } } [TestMethod] public void SvgPreviewControl_InfoBarWidthShouldAdjustWithParentControlWidthChanges_IfBlockedElementsArePresent() { // Arrange - var svgPreviewControl = new SvgPreviewControl(); - var svgBuilder = new StringBuilder(); - svgBuilder.AppendLine(""); - svgBuilder.AppendLine("\t"); - svgBuilder.AppendLine(""); - svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); - var textBox = svgPreviewControl.Controls[0] as RichTextBox; - var incrementParentControlWidth = 5; - var intialParentWidth = svgPreviewControl.Width; - var intitialTextBoxWidth = textBox.Width; - var finalParentWidth = intialParentWidth + incrementParentControlWidth; + using (var svgPreviewControl = new SvgPreviewControl()) + { + var svgBuilder = new StringBuilder(); + svgBuilder.AppendLine(""); + svgBuilder.AppendLine("\t"); + svgBuilder.AppendLine(""); + svgPreviewControl.DoPreview(GetMockStream(svgBuilder.ToString())); + var textBox = svgPreviewControl.Controls[0] as RichTextBox; + var incrementParentControlWidth = 5; + var intialParentWidth = svgPreviewControl.Width; + var intitialTextBoxWidth = textBox.Width; + var finalParentWidth = intialParentWidth + incrementParentControlWidth; - // Act - svgPreviewControl.Width += incrementParentControlWidth; + // Act + svgPreviewControl.Width += incrementParentControlWidth; - // Assert - Assert.AreEqual(intialParentWidth, intitialTextBoxWidth); - Assert.AreEqual(finalParentWidth, textBox.Width); + // Assert + Assert.AreEqual(intialParentWidth, intitialTextBoxWidth); + Assert.AreEqual(finalParentWidth, textBox.Width); + } } - private IStream GetMockStream(string streamData) + private IStream GetMockStream(string streamData) { var mockStream = new Mock(); var streamBytes = Encoding.UTF8.GetBytes(streamData); @@ -240,7 +256,7 @@ namespace UnitTests_SvgPreviewHandler Marshal.WriteInt32(bytesReadPtr, streamBytes.Length); firstCall = false; } - else + else { Marshal.WriteInt32(bytesReadPtr, 0); } diff --git a/src/modules/previewpane/UnitTests-SvgPreviewHandler/UnitTests-SvgPreviewHandler.csproj b/src/modules/previewpane/UnitTests-SvgPreviewHandler/UnitTests-SvgPreviewHandler.csproj index 43af524b86..c7aa660236 100644 --- a/src/modules/previewpane/UnitTests-SvgPreviewHandler/UnitTests-SvgPreviewHandler.csproj +++ b/src/modules/previewpane/UnitTests-SvgPreviewHandler/UnitTests-SvgPreviewHandler.csproj @@ -96,13 +96,13 @@ 4.13.1 - 1.3.2 + 2.1.1 - 1.3.2 + 2.1.1 - 4.5.2 + 4.5.4