diff --git a/test/Squirrel.Tests.csproj b/test/Squirrel.Tests.csproj
index 28580b65..a9e15cfa 100644
--- a/test/Squirrel.Tests.csproj
+++ b/test/Squirrel.Tests.csproj
@@ -84,6 +84,7 @@
+
@@ -98,6 +99,10 @@
{1436e22a-fe3c-4d68-9a85-9e74df2e6a92}
Squirrel
+
+ {1eebacbc-6982-4696-bd4e-899ed0ac6cd2}
+ Update
+
diff --git a/test/SquirrelAwareExecutableDetectorTests.cs b/test/SquirrelAwareExecutableDetectorTests.cs
new file mode 100644
index 00000000..8630e4fc
--- /dev/null
+++ b/test/SquirrelAwareExecutableDetectorTests.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using Squirrel.Tests.TestHelpers;
+using Xunit;
+
+namespace Squirrel.Tests
+{
+ public class SquirrelAwareExecutableDetectorTests
+ {
+ [Fact]
+ public void SquirrelAwareViaVersionBlock()
+ {
+ var target = Path.Combine(
+ IntegrationTestHelper.GetIntegrationTestRootDirectory(),
+ "..", "src", "Setup", "bin", "Release", "Setup.exe");
+
+ Assert.True(File.Exists(target));
+
+ var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
+ Assert.Equal(1, ret.Value);
+ }
+
+ [Fact]
+ public void SquirrelAwareViaAssemblyAttribute()
+ {
+ var target = Path.Combine(
+ IntegrationTestHelper.GetIntegrationTestRootDirectory(),
+ "..", "src", "Update", "bin", "Release", "Update.exe");
+
+ Assert.True(File.Exists(target));
+
+ var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
+ Assert.Equal(1, ret.Value);
+ }
+
+ [Fact]
+ public void NotSquirrelAware()
+ {
+ var target = Assembly.GetExecutingAssembly().Location;
+ Assert.True(File.Exists(target));
+
+ var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
+ Assert.Null(ret);
+ }
+ }
+}