Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

Commit

Permalink
Add tests for dots and dashes in package name
Browse files Browse the repository at this point in the history
  • Loading branch information
caesay committed Jan 10, 2022
1 parent b160e99 commit cf740c5
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 0 deletions.
44 changes: 44 additions & 0 deletions test/ApplyReleasesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,50 @@ public async Task FullUninstallRemovesAllVersions()
}
}

[Fact]
public async Task CanInstallAndUpdatePackageWithDotsInId()
{
string tempDir;
string remotePkgDir;
const string pkgName = "Squirrel.Installed.App";

using (Utility.WithTempDirectory(out tempDir))
using (Utility.WithTempDirectory(out remotePkgDir)) {
// install 0.1.0
IntegrationTestHelper.CreateFakeInstalledApp("0.1.0", remotePkgDir, "SquirrelInstalledAppWithDots.nuspec");
var pkgs = ReleaseEntry.BuildReleasesFile(remotePkgDir);
ReleaseEntry.WriteReleaseFile(pkgs, Path.Combine(remotePkgDir, "RELEASES"));

using (var fixture = new UpdateManager(remotePkgDir, pkgName, tempDir)) {
await fixture.FullInstall();
}

Assert.True(Directory.Exists(Path.Combine(tempDir, pkgName, "app-0.1.0")));
await Task.Delay(1000);

// update top 0.2.0
IntegrationTestHelper.CreateFakeInstalledApp("0.2.0", remotePkgDir, "SquirrelInstalledAppWithDots.nuspec");
pkgs = ReleaseEntry.BuildReleasesFile(remotePkgDir);
ReleaseEntry.WriteReleaseFile(pkgs, Path.Combine(remotePkgDir, "RELEASES"));

using (var fixture = new UpdateManager(remotePkgDir, pkgName, tempDir)) {
await fixture.UpdateApp();
}

Assert.True(Directory.Exists(Path.Combine(tempDir, pkgName, "app-0.2.0")));
await Task.Delay(1000);

// uninstall
using (var fixture = new UpdateManager(remotePkgDir, pkgName, tempDir)) {
await fixture.FullUninstall();
}

Assert.False(File.Exists(Path.Combine(tempDir, pkgName, "app-0.1.0", "args.txt")));
Assert.False(File.Exists(Path.Combine(tempDir, pkgName, "app-0.2.0", "args.txt")));
Assert.True(File.Exists(Path.Combine(tempDir, pkgName, ".dead")));
}
}

[Fact]
public void WhenNoNewReleasesAreAvailableTheListIsEmpty()
{
Expand Down
20 changes: 20 additions & 0 deletions test/ReleaseEntryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,26 @@ public void ParseValidReleaseEntryLines(string releaseEntry, string fileName, lo
Assert.Equal(query, fixture.Query);
}

[Theory]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec My.Cool.App-1.0-full.nupkg 1004502", "My.Cool.App")]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec My.Cool.App-1.1.nupkg 1004502", "My.Cool.App")]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec http://test.org/Folder/My.Cool.App-1.2.nupkg?query=param 1231953", "My.Cool.App")]
public void ParseValidReleaseEntryLinesWithDots(string releaseEntry, string packageName)
{
var fixture = ReleaseEntry.ParseReleaseEntry(releaseEntry);
Assert.Equal(packageName, fixture.PackageName);
}

[Theory]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec My-Cool-App-1.0-full.nupkg 1004502", "My-Cool-App")]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec My-Cool-App-1.1.nupkg 1004502", "My-Cool-App")]
[InlineData(@"94689fede03fed7ab59c24337673a27837f0c3ec http://test.org/Folder/My-Cool-App-1.2.nupkg?query=param 1231953", "My-Cool-App")]
public void ParseValidReleaseEntryLinesWithDashes(string releaseEntry, string packageName)
{
var fixture = ReleaseEntry.ParseReleaseEntry(releaseEntry);
Assert.Equal(packageName, fixture.PackageName);
}

[Theory]
[InlineData(@"0000000000000000000000000000000000000000 file:/C/Folder/MyCoolApp-0.0.nupkg 0")]
[InlineData(@"0000000000000000000000000000000000000000 C:\Folder\MyCoolApp-0.0.nupkg 0")]
Expand Down
14 changes: 14 additions & 0 deletions test/fixtures/SquirrelInstalledAppWithDots.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Squirrel.Installed.App</id>
<version>0.1.0</version>
<authors>Anaïs Betts</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>My package description.</description>
</metadata>
<files>
<file src="NotSquirrelAwareApp.exe" target="lib\net45\NotSquirrelAwareApp.exe" />
<file src="SquirrelAwareApp.exe" target="lib\net45\SquirrelAwareApp.exe" />
</files>
</package>

0 comments on commit cf740c5

Please sign in to comment.