diff --git a/Directory.Packages.props b/Directory.Packages.props
index b2c27c87c0cb..d5a0e46b8d79 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -28,6 +28,7 @@
+
diff --git a/Files.slnx b/Files.slnx
index 62db94832e31..e96127f8b187 100644
--- a/Files.slnx
+++ b/Files.slnx
@@ -75,6 +75,12 @@
+
+
+
+
+
+
diff --git a/tests/Files.App.UnitTests/App.xaml b/tests/Files.App.UnitTests/App.xaml
new file mode 100644
index 000000000000..fb2d845c9c77
--- /dev/null
+++ b/tests/Files.App.UnitTests/App.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Files.App.UnitTests/App.xaml.cs b/tests/Files.App.UnitTests/App.xaml.cs
new file mode 100644
index 000000000000..951cdde57993
--- /dev/null
+++ b/tests/Files.App.UnitTests/App.xaml.cs
@@ -0,0 +1,30 @@
+// Copyright (c) Files Community
+// Licensed under the MIT License.
+
+using Microsoft.UI.Xaml;
+using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
+
+namespace Files.App.UnitTests
+{
+ public partial class App : Application
+ {
+ private Window? _window;
+
+ public App()
+ {
+ InitializeComponent();
+ }
+
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
+
+ _window = new MainWindow();
+ _window.Activate();
+
+ UITestMethodAttribute.DispatcherQueue = _window.DispatcherQueue;
+
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(System.Environment.CommandLine);
+ }
+ }
+}
diff --git a/tests/Files.App.UnitTests/Assets/LockScreenLogo.scale-200.png b/tests/Files.App.UnitTests/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 000000000000..7440f0d4bf7c
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/LockScreenLogo.scale-200.png differ
diff --git a/tests/Files.App.UnitTests/Assets/SplashScreen.scale-200.png b/tests/Files.App.UnitTests/Assets/SplashScreen.scale-200.png
new file mode 100644
index 000000000000..32f486a86792
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/SplashScreen.scale-200.png differ
diff --git a/tests/Files.App.UnitTests/Assets/Square150x150Logo.scale-200.png b/tests/Files.App.UnitTests/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 000000000000..53ee3777ea27
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/Square150x150Logo.scale-200.png differ
diff --git a/tests/Files.App.UnitTests/Assets/Square44x44Logo.scale-200.png b/tests/Files.App.UnitTests/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 000000000000..f713bba67f55
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/Square44x44Logo.scale-200.png differ
diff --git a/tests/Files.App.UnitTests/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/tests/Files.App.UnitTests/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 000000000000..dc9f5bea0c3b
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/tests/Files.App.UnitTests/Assets/StoreLogo.png b/tests/Files.App.UnitTests/Assets/StoreLogo.png
new file mode 100644
index 000000000000..a4586f26bdf7
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/StoreLogo.png differ
diff --git a/tests/Files.App.UnitTests/Assets/Wide310x150Logo.scale-200.png b/tests/Files.App.UnitTests/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 000000000000..8b4a5d0dd5f6
Binary files /dev/null and b/tests/Files.App.UnitTests/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/tests/Files.App.UnitTests/Files.App.UnitTests.csproj b/tests/Files.App.UnitTests/Files.App.UnitTests.csproj
new file mode 100644
index 000000000000..08698e483bde
--- /dev/null
+++ b/tests/Files.App.UnitTests/Files.App.UnitTests.csproj
@@ -0,0 +1,42 @@
+
+
+
+ $(WindowsTargetFramework)
+ $(MinimalWindowsVersion)
+ WinExe
+ app.manifest
+ x86;x64;ARM64
+ win-x86;win-x64;win-arm64
+ win-$(Platform).pubxml
+ true
+ true
+ enable
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Files.App.UnitTests/MainWindow.xaml b/tests/Files.App.UnitTests/MainWindow.xaml
new file mode 100644
index 000000000000..64fcd0b80881
--- /dev/null
+++ b/tests/Files.App.UnitTests/MainWindow.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/tests/Files.App.UnitTests/MainWindow.xaml.cs b/tests/Files.App.UnitTests/MainWindow.xaml.cs
new file mode 100644
index 000000000000..86309f66c8a6
--- /dev/null
+++ b/tests/Files.App.UnitTests/MainWindow.xaml.cs
@@ -0,0 +1,17 @@
+// Copyright (c) Files Community
+// Licensed under the MIT License.
+
+using Microsoft.UI.Xaml;
+
+namespace Files.App.UnitTests
+{
+ public sealed partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+
+ ExtendsContentIntoTitleBar = true;
+ }
+ }
+}
diff --git a/tests/Files.App.UnitTests/Package.appxmanifest b/tests/Files.App.UnitTests/Package.appxmanifest
new file mode 100644
index 000000000000..6fee3989c03f
--- /dev/null
+++ b/tests/Files.App.UnitTests/Package.appxmanifest
@@ -0,0 +1,47 @@
+
+
+
+
+
+ Files Unit Test WinUI app
+ Files Community
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Files.App.UnitTests/UnitTests.cs b/tests/Files.App.UnitTests/UnitTests.cs
new file mode 100644
index 000000000000..e8b5e5ab6dfa
--- /dev/null
+++ b/tests/Files.App.UnitTests/UnitTests.cs
@@ -0,0 +1,26 @@
+// Copyright (c) Files Community
+// Licensed under the MIT License.
+
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
+
+namespace App1
+{
+ [TestClass]
+ public class UnitTest1
+ {
+ [TestMethod]
+ public void TestMethod1()
+ {
+ Assert.AreEqual(0, 0);
+ }
+
+ [UITestMethod]
+ public void TestMethod2()
+ {
+ var grid = new Grid();
+ Assert.AreEqual(0, grid.MinWidth);
+ }
+ }
+}
diff --git a/tests/Files.App.UnitTests/app.manifest b/tests/Files.App.UnitTests/app.manifest
new file mode 100644
index 000000000000..e68913621268
--- /dev/null
+++ b/tests/Files.App.UnitTests/app.manifest
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2
+
+
+
+