mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-23 16:37:58 +08:00
c2c163ac4e
* spelling: alignment * spelling: awareness * spelling: background * spelling: bottom * spelling: buttons * spelling: comparison * spelling: cortana * spelling: exiting * spelling: initialization * spelling: middle * spelling: properly * spelling: succeeded * spelling: unknown
200 lines
6.3 KiB
C#
200 lines
6.3 KiB
C#
// Copyright (c) Microsoft Corporation
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
using Common;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows.Forms;
|
|
|
|
namespace UnitTests_PreviewHandlerCommon
|
|
{
|
|
[TestClass]
|
|
public class FormHandlerControlTests
|
|
{
|
|
private class TestFormControl : FormHandlerControl
|
|
{ }
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldCreateHandle_OnInitialization()
|
|
{
|
|
// Arrange and act
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Assert
|
|
Assert.IsTrue(testFormHandlerControl.IsHandleCreated);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetVisibleFalse_OnInitialization()
|
|
{
|
|
// Arrange and act
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Assert
|
|
Assert.IsFalse(testFormHandlerControl.Visible);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetFormBorderStyle_OnInitialization()
|
|
{
|
|
// Arrange and act
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Assert
|
|
Assert.AreEqual(FormBorderStyle.None, testFormHandlerControl.FormBorderStyle);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldReturnValidHandle_WhenGetHandleCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Act
|
|
var handle = testFormHandlerControl.GetHandle();
|
|
|
|
// Assert
|
|
Assert.AreEqual(testFormHandlerControl.Handle, handle);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetBackgroundColor_WhenSetBackgroundColorCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
var color = Color.Navy;
|
|
|
|
// Act
|
|
testFormHandlerControl.SetBackgroundColor(color);
|
|
|
|
// Assert
|
|
Assert.AreEqual(color, testFormHandlerControl.BackColor);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetFont_WhenSetFontCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
var font = new Font("Arial", 20);
|
|
|
|
// Act
|
|
testFormHandlerControl.SetFont(font);
|
|
|
|
// Assert
|
|
Assert.AreEqual(font, testFormHandlerControl.Font);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldUpdateBounds_WhenSetRectCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
var bounds = new Rectangle(2, 2, 4, 4);
|
|
|
|
// Act
|
|
testFormHandlerControl.SetRect(bounds);
|
|
|
|
// Assert
|
|
Assert.AreEqual(bounds, testFormHandlerControl.Bounds);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetTextColor_WhenSetTextColorCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
var color = Color.Navy;
|
|
|
|
// Act
|
|
testFormHandlerControl.SetTextColor(color);
|
|
|
|
// Assert
|
|
Assert.AreEqual(color, testFormHandlerControl.ForeColor);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldClearAllControls_WhenUnloadCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
testFormHandlerControl.Controls.Add(new TextBox());
|
|
testFormHandlerControl.Controls.Add(new RichTextBox());
|
|
|
|
// Act
|
|
testFormHandlerControl.Unload();
|
|
|
|
// Assert
|
|
Assert.AreEqual(0, testFormHandlerControl.Controls.Count);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetVisibleFalse_WhenUnloadCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Act
|
|
testFormHandlerControl.Unload();
|
|
|
|
// Assert
|
|
Assert.IsFalse(testFormHandlerControl.Visible);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetVisibletrue_WhenDoPreviewCalled()
|
|
{
|
|
// Arrange
|
|
using (var testFormHandlerControl = new TestFormControl())
|
|
{
|
|
// Act
|
|
testFormHandlerControl.DoPreview("valid-path");
|
|
|
|
// Assert
|
|
Assert.IsTrue(testFormHandlerControl.Visible);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FormHandlerControl_ShouldSetParentHandle_WhenSetWindowCalled()
|
|
{
|
|
// Arrange
|
|
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
|
|
|
|
// Assert
|
|
Assert.AreEqual(parentHwnd, actualParentHwnd);
|
|
}
|
|
}
|
|
|
|
// Gets the ancestor window: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getancestor
|
|
[DllImport("user32.dll")]
|
|
private static extern IntPtr GetAncestor(IntPtr hWnd, uint gaFlags);
|
|
}
|
|
}
|