Skip to content
This repository was archived by the owner on Jun 17, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This package automaticaly removes any previous versions for those times when a v

### Installation

> *Note:* UnVersion has been developed against **Umbraco v7.1.4** and will support that version and above.
> *Note:* UnVersion has been developed against **Umbraco v8.2.? (Pending PR)** and will support that version and above.

UnVersion can be installed from either Our Umbraco or NuGet package repositories, or build manually from the source-code:

Expand All @@ -34,7 +34,7 @@ We also have a [MyGet package repository](https://www.myget.org/gallery/umbraco-

If you prefer, you can compile UnVersion yourself, you'll need:

* Visual Studio 2012 (or above)
* Visual Studio 2017 (or above)

To clone it locally click the "Clone in Windows" button above or run the following git commands.

Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# version format
version: 2.2.0.{build}
version: 3.0.0.{build}

# UMBRACO_PACKAGE_PRERELEASE_SUFFIX if a rtm release build this should be blank, otherwise if empty will default to alpha
# example UMBRACO_PACKAGE_PRERELEASE_SUFFIX=beta
Expand Down
4 changes: 2 additions & 2 deletions build/package.proj
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
<PropertyGroup>
<ProjectName>Our.Umbraco.UnVersion</ProjectName>
<PackageName>UnVersion</PackageName>
<MinUmbracoVersion>7.1.4</MinUmbracoVersion>
<Readme>A content un-versioning package for Umbraco 7.1+</Readme>
<MinUmbracoVersion>8.2.1</MinUmbracoVersion>
<Readme>A content un-versioning package for Umbraco 8.2+</Readme>
<AuthorName>Matt Brailsford, Lee Kelleher</AuthorName>
<AuthorUrl>https://github.com/umco/umbraco-unversion/graphs/contributors</AuthorUrl>
<PackageLicenseName>MIT license</PackageLicenseName>
Expand Down
2 changes: 1 addition & 1 deletion docs/developers-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To define a new unversion rule, create an `<add>` element with the following att
```xml
<?xml version="1.0"?>
<unVersionConfig>
<add docTypeAlias="newsPage" rootXpath="//node[@nodeTypeAlias='newsIndex']" maxDays="2" maxCount="10" />
<add docTypeAlias="newsPage" rootXpath="//blog[@isDoc]" maxDays="2" maxCount="10" />
</unVersionConfig>
```

Expand Down
287 changes: 287 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/Our.Umbraco.UnVersion.Tests.csproj

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[assembly: AssemblyTitle("Our.Umbraco.UnVersion.Tests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Our.Umbraco.UnVersion.Tests")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]

[assembly: Guid("db4825f3-92cb-44ca-96f1-2680026dafb1")]

// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
67 changes: 67 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/Services/UnVersionServiceTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Our.Umbraco.UnVersion.Services;
using Umbraco.Core.Models;

namespace Our.Umbraco.UnVersion.Tests.Services
{
[TestClass]
public class ServiceTests
{
[TestMethod]
public void GetVersions_Returns_Right_Based_On_Date()
{

var config = new UnVersionConfigEntry() {MaxDays = 10};

List<IContent> versions = new List<IContent>()
{
TestHelper.GetVersionMock(1, new DateTime(2019, 12, 10)).Object, // should be deleted
TestHelper.GetVersionMock(2, new DateTime(2019, 12, 19)).Object, // should be deleted
TestHelper.GetVersionMock(3, new DateTime(2019, 12, 20)).Object // should be kept
};

var service = new UnVersionService(null,null,null,null);

var res = service.GetVersionsToDelete(versions, config, new DateTime(2019, 12, 30));

Assert.IsTrue(res.Contains(1));
Assert.IsTrue(res.Contains(2));
Assert.IsFalse(res.Contains(3));

}

[TestMethod]
public void GetVersions_Returns_Right_Based_Max_Count()
{
var config = new UnVersionConfigEntry() { MaxCount = 5 };

List<IContent> versions = new List<IContent>()
{
TestHelper.GetVersionMock(10, new DateTime(2019, 12, 10)).Object, // should be kept
TestHelper.GetVersionMock(20, new DateTime(2019, 12, 19)).Object, // should be kept
TestHelper.GetVersionMock(30, new DateTime(2019, 12, 20)).Object, // should be kept
TestHelper.GetVersionMock(40, new DateTime(2019, 12, 10)).Object, // should be kept
TestHelper.GetVersionMock(50, new DateTime(2019, 12, 19)).Object, // should be kept
TestHelper.GetVersionMock(60, new DateTime(2019, 12, 20)).Object, // should be deleted
TestHelper.GetVersionMock(70, new DateTime(2019, 12, 10)).Object, // should be deleted
TestHelper.GetVersionMock(80, new DateTime(2019, 12, 19)).Object, // should be deleted
TestHelper.GetVersionMock(90, new DateTime(2019, 12, 20)).Object, // should be deleted
};

var service = new UnVersionService(null,null, null,null);

var res = service.GetVersionsToDelete(versions, config, new DateTime(2019, 12, 30));

Assert.IsFalse(res.Contains(50));

Assert.IsTrue(res.Contains(60));
Assert.IsTrue(res.Contains(70));
Assert.IsTrue(res.Contains(80));
Assert.IsTrue(res.Contains(90));

}

}
}
21 changes: 21 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/TestHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Moq;
using Umbraco.Core.Models;

namespace Our.Umbraco.UnVersion.Tests
{
public static class TestHelper
{
public static Mock<IContent> GetVersionMock(int versionId, DateTime updateDate)
{
var mock = new Mock<IContent>();
mock.Setup(x => x.VersionId).Returns(versionId);
mock.Setup(x => x.UpdateDate).Returns(updateDate);
return mock;
}
}
}
35 changes: 35 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/app.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
64 changes: 64 additions & 0 deletions src/Our.Umbraco.UnVersion.Tests/packages.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="8.0.0" targetFramework="net472" />
<package id="Castle.Core" version="4.4.0" targetFramework="net472" />
<package id="ClientDependency" version="1.9.8" targetFramework="net472" />
<package id="ClientDependency-Mvc5" version="1.9.3" targetFramework="net472" />
<package id="CSharpTest.Net.Collections" version="14.906.1403.1082" targetFramework="net472" />
<package id="Examine" version="1.0.1" targetFramework="net472" />
<package id="HtmlAgilityPack" version="1.8.14" targetFramework="net472" />
<package id="ImageProcessor" version="2.7.0.100" targetFramework="net472" />
<package id="LightInject" version="5.4.0" targetFramework="net472" />
<package id="LightInject.Annotation" version="1.1.0" targetFramework="net472" />
<package id="LightInject.Mvc" version="2.0.0" targetFramework="net472" />
<package id="LightInject.Web" version="2.0.0" targetFramework="net472" />
<package id="LightInject.WebApi" version="2.0.0" targetFramework="net472" />
<package id="Lucene.Net" version="3.0.3" targetFramework="net472" />
<package id="Markdown" version="2.2.1" targetFramework="net472" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.2" targetFramework="net472" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.2" targetFramework="net472" />
<package id="Microsoft.AspNet.Mvc" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.Razor" version="3.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.SignalR.Core" version="2.4.0" targetFramework="net472" />
<package id="Microsoft.AspNet.WebApi" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.WebPages" version="3.2.7" targetFramework="net472" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.0.0" targetFramework="net472" />
<package id="Microsoft.Owin" version="4.0.1" targetFramework="net472" />
<package id="Microsoft.Owin.Host.SystemWeb" version="4.0.1" targetFramework="net472" />
<package id="Microsoft.Owin.Security" version="4.0.1" targetFramework="net472" />
<package id="Microsoft.Owin.Security.Cookies" version="4.0.1" targetFramework="net472" />
<package id="Microsoft.Owin.Security.OAuth" version="4.0.1" targetFramework="net472" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net472" />
<package id="MiniProfiler" version="4.0.138" targetFramework="net472" />
<package id="MiniProfiler.Shared" version="4.0.138" targetFramework="net472" />
<package id="Moq" version="4.13.1" targetFramework="net472" />
<package id="MSTest.TestAdapter" version="1.3.2" targetFramework="net472" />
<package id="MSTest.TestFramework" version="1.3.2" targetFramework="net472" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net472" />
<package id="NPoco" version="3.9.4" targetFramework="net472" />
<package id="Owin" version="1.0" targetFramework="net472" />
<package id="Semver" version="2.0.4" targetFramework="net472" />
<package id="Serilog" version="2.8.0" targetFramework="net472" />
<package id="Serilog.Enrichers.Process" version="2.0.1" targetFramework="net472" />
<package id="Serilog.Enrichers.Thread" version="3.0.0" targetFramework="net472" />
<package id="Serilog.Filters.Expressions" version="2.0.0" targetFramework="net472" />
<package id="Serilog.Formatting.Compact" version="1.0.0" targetFramework="net472" />
<package id="Serilog.Formatting.Compact.Reader" version="1.0.3" targetFramework="net472" />
<package id="Serilog.Settings.AppSettings" version="2.2.2" targetFramework="net472" />
<package id="Serilog.Sinks.Async" version="1.3.0" targetFramework="net472" />
<package id="Serilog.Sinks.File" version="4.0.0" targetFramework="net472" />
<package id="Serilog.Sinks.Map" version="1.0.0" targetFramework="net472" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net472" />
<package id="Superpower" version="2.0.0" targetFramework="net472" />
<package id="System.Diagnostics.DiagnosticSource" version="4.4.1" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Dataflow" version="4.9.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
<package id="Umbraco.SqlServerCE" version="4.0.0.1" targetFramework="net472" />
<package id="UmbracoCms.Core" version="8.4.0" targetFramework="net472" />
<package id="UmbracoCms.Web" version="8.4.0" targetFramework="net472" />
</packages>
24 changes: 21 additions & 3 deletions src/Our.Umbraco.UnVersion.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29411.108
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Our.Umbraco.UnVersion", "Our.Umbraco.UnVersion\Our.Umbraco.UnVersion.csproj", "{A3E6B76A-35AC-415A-BCED-971223D63BAC}"
EndProject
Expand All @@ -21,6 +22,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
..\README.md = ..\README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{BA0FC6AB-55AD-4AFF-A5EB-AF4A654C7341}"
ProjectSection(SolutionItems) = preProject
..\docs\developers-guide.md = ..\docs\developers-guide.md
EndProjectSection
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Our.Umbraco.UnVersion.Tests", "Our.Umbraco.UnVersion.Tests\Our.Umbraco.UnVersion.Tests.csproj", "{DB4825F3-92CB-44CA-96F1-2680026DAFB1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -31,11 +38,22 @@ Global
{A3E6B76A-35AC-415A-BCED-971223D63BAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3E6B76A-35AC-415A-BCED-971223D63BAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3E6B76A-35AC-415A-BCED-971223D63BAC}.Release|Any CPU.Build.0 = Release|Any CPU
{DB4825F3-92CB-44CA-96F1-2680026DAFB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB4825F3-92CB-44CA-96F1-2680026DAFB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB4825F3-92CB-44CA-96F1-2680026DAFB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB4825F3-92CB-44CA-96F1-2680026DAFB1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{AE05CC62-1E54-4E24-AA99-B7EED3CFFA3C} = {E155CD07-7718-4EE8-B51E-FECABE034A33}
{BA0FC6AB-55AD-4AFF-A5EB-AF4A654C7341} = {E155CD07-7718-4EE8-B51E-FECABE034A33}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AAE25AE6-314C-45E6-BD87-04A97F90EE16}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A3114DD6-96F4-4EB1-B6DA-0811E052F9F9}
EndGlobalSection
EndGlobal
40 changes: 0 additions & 40 deletions src/Our.Umbraco.UnVersion/Bootstrap.cs

This file was deleted.

Loading