Browse Source

Fix blank summary in NuGet package license accept dialog.

Use description if the package summary is missing.
pull/33/head
Matt Ward 13 years ago
parent
commit
2d45e51d81
  1. 2
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 21
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageExtensions.cs
  3. 8
      src/AddIns/Misc/PackageManagement/Project/Src/LicenseAcceptanceViewModel.cs
  4. 30
      src/AddIns/Misc/PackageManagement/Project/Src/PackageLicenseViewModel.cs
  5. 7
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  6. 1
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  7. 55
      src/AddIns/Misc/PackageManagement/Test/Src/IPackageExtensionsTests.cs
  8. 11
      src/AddIns/Misc/PackageManagement/Test/Src/LicenseAcceptanceViewModelTests.cs

2
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -149,6 +149,7 @@
<Compile Include="Src\EnvDTE\Window.cs" /> <Compile Include="Src\EnvDTE\Window.cs" />
<Compile Include="Src\IClassKindUpdater.cs" /> <Compile Include="Src\IClassKindUpdater.cs" />
<Compile Include="Src\IDocumentNamespaceCreator.cs" /> <Compile Include="Src\IDocumentNamespaceCreator.cs" />
<Compile Include="Src\IPackageExtensions.cs" />
<Compile Include="Src\IProjectBuilder.cs" /> <Compile Include="Src\IProjectBuilder.cs" />
<Compile Include="Src\IProjectContentExtensions.cs" /> <Compile Include="Src\IProjectContentExtensions.cs" />
<Compile Include="Src\IVirtualMethodUpdater.cs" /> <Compile Include="Src\IVirtualMethodUpdater.cs" />
@ -220,6 +221,7 @@
<Compile Include="Src\ManagePackagesUserPrompts.cs" /> <Compile Include="Src\ManagePackagesUserPrompts.cs" />
<Compile Include="Src\ManagePackagesViewTitle.cs" /> <Compile Include="Src\ManagePackagesViewTitle.cs" />
<Compile Include="Src\MSBuildBasedProjectExtensions.cs" /> <Compile Include="Src\MSBuildBasedProjectExtensions.cs" />
<Compile Include="Src\PackageLicenseViewModel.cs" />
<Compile Include="Src\PackageManagementServiceProvider.cs" /> <Compile Include="Src\PackageManagementServiceProvider.cs" />
<Compile Include="Src\ProjectBuilder.cs" /> <Compile Include="Src\ProjectBuilder.cs" />
<Compile Include="Src\VirtualMethodUpdater.cs" /> <Compile Include="Src\VirtualMethodUpdater.cs" />

21
src/AddIns/Misc/PackageManagement/Project/Src/IPackageExtensions.cs

@ -0,0 +1,21 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public static class IPackageExtensions
{
/// <summary>
/// Returns description if summary is missing.
/// </summary>
public static string SummaryOrDescription(this IPackage package)
{
if (String.IsNullOrEmpty(package.Summary))
return package.Description;
return package.Summary;
}
}
}

8
src/AddIns/Misc/PackageManagement/Project/Src/LicenseAcceptanceViewModel.cs

@ -10,14 +10,16 @@ namespace ICSharpCode.PackageManagement
{ {
public class LicenseAcceptanceViewModel : ViewModelBase<LicenseAcceptanceViewModel> public class LicenseAcceptanceViewModel : ViewModelBase<LicenseAcceptanceViewModel>
{ {
IList<IPackage> packages; IList<PackageLicenseViewModel> packages;
public LicenseAcceptanceViewModel(IEnumerable<IPackage> packages) public LicenseAcceptanceViewModel(IEnumerable<IPackage> packages)
{ {
this.packages = packages.ToList(); this.packages = packages
.Select(p => new PackageLicenseViewModel(p))
.ToList();
} }
public IEnumerable<IPackage> Packages { public IEnumerable<PackageLicenseViewModel> Packages {
get { return packages; } get { return packages; }
} }

30
src/AddIns/Misc/PackageManagement/Project/Src/PackageLicenseViewModel.cs

@ -0,0 +1,30 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class PackageLicenseViewModel : ViewModelBase<PackageLicenseViewModel>
{
IPackage package;
public PackageLicenseViewModel(IPackage package)
{
this.package = package;
}
public string Id {
get { return package.Id; }
}
public string Summary {
get { return package.SummaryOrDescription(); }
}
public Uri LicenseUrl {
get { return package.LicenseUrl; }
}
}
}

7
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

@ -130,12 +130,7 @@ namespace ICSharpCode.PackageManagement
} }
public string Summary { public string Summary {
get { get { return package.SummaryOrDescription(); }
if (!String.IsNullOrEmpty(package.Summary)) {
return package.Summary;
}
return package.Description;
}
} }
public SemanticVersion Version { public SemanticVersion Version {

1
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -134,6 +134,7 @@
<Compile Include="Src\Helpers\UsingHelper.cs" /> <Compile Include="Src\Helpers\UsingHelper.cs" />
<Compile Include="Src\Helpers\UsingScopeHelper.cs" /> <Compile Include="Src\Helpers\UsingScopeHelper.cs" />
<Compile Include="Src\InstalledPackageViewModelTests.cs" /> <Compile Include="Src\InstalledPackageViewModelTests.cs" />
<Compile Include="Src\IPackageExtensionsTests.cs" />
<Compile Include="Src\ManagePackagesCommandTests.cs" /> <Compile Include="Src\ManagePackagesCommandTests.cs" />
<Compile Include="Src\ConsolePackageActionRunnerTests.cs" /> <Compile Include="Src\ConsolePackageActionRunnerTests.cs" />
<Compile Include="Src\DefaultProjectTemplatePackageSourceTests.cs" /> <Compile Include="Src\DefaultProjectTemplatePackageSourceTests.cs" />

55
src/AddIns/Misc/PackageManagement/Test/Src/IPackageExtensionsTests.cs

@ -0,0 +1,55 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.SharpDevelop;
using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework;
namespace PackageManagement.Tests
{
[TestFixture]
public class IPackageExtensionsTests
{
FakePackage package;
void CreatePackageWithSummary(string summary)
{
package = new FakePackage() { Summary = summary };
}
[Test]
public void SummaryOrDescription_PackageHasSummary_ReturnsSummary()
{
CreatePackageWithSummary("summary");
string result = package.SummaryOrDescription();
Assert.AreEqual("summary", result);
}
[Test]
public void SummaryOrDescription_PackageHasDescriptionButNullSummary_ReturnsDescription()
{
CreatePackageWithSummary(null);
package.Description = "description";
string result = package.SummaryOrDescription();
Assert.AreEqual("description", result);
}
[Test]
public void SummaryOrDescription_PackageHasDescriptionButEmptySummary_ReturnsDescription()
{
CreatePackageWithSummary(String.Empty);
package.Description = "description";
string result = package.SummaryOrDescription();
Assert.AreEqual("description", result);
}
}
}

11
src/AddIns/Misc/PackageManagement/Test/Src/LicenseAcceptanceViewModelTests.cs

@ -3,6 +3,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using NuGet; using NuGet;
@ -65,7 +67,14 @@ namespace PackageManagement.Tests
{ {
CreateViewModelWithOnePackage(); CreateViewModelWithOnePackage();
CollectionAssert.AreEqual(packages, viewModel.Packages); List<PackageLicenseViewModel> packageViewModels = viewModel.Packages.ToList();
PackageLicenseViewModel firstPackageViewModel = packageViewModels.FirstOrDefault();
FakePackage expectedPackage = packages[0];
Assert.AreEqual(1, packageViewModels.Count);
Assert.AreEqual(expectedPackage.Id, firstPackageViewModel.Id);
Assert.AreEqual(expectedPackage.LicenseUrl, firstPackageViewModel.LicenseUrl);
Assert.AreEqual(expectedPackage.SummaryOrDescription(), firstPackageViewModel.Summary);
} }
[Test] [Test]

Loading…
Cancel
Save