diff --git a/frontend/src/System/Status/About/About.js b/frontend/src/System/Status/About/About.js
index f212ef947..95e864dbb 100644
--- a/frontend/src/System/Status/About/About.js
+++ b/frontend/src/System/Status/About/About.js
@@ -21,6 +21,8 @@ class About extends Component {
isNetCore,
isDocker,
runtimeVersion,
+ databaseVersion,
+ databaseType,
appData,
startupPath,
mode,
@@ -61,6 +63,11 @@ class About extends Component {
/>
}
+
+
(new Mock().Object);
+ container.RegisterInstance(new Mock().Object);
+ container.RegisterInstance(new Mock>().Object);
var serviceProvider = container.GetServiceProvider();
diff --git a/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs b/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs
index defe1bde0..d0150a7bc 100644
--- a/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs
+++ b/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs
@@ -17,6 +17,7 @@ namespace NzbDrone.Common.Instrumentation
new (@"iptorrents\.com/[/a-z0-9?&;]*?(?:[?&;](u|tp)=(?[^&=;]+?))+(?= |;|&|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new (@"/fetch/[a-z0-9]{32}/(?[a-z0-9]{32})", RegexOptions.Compiled),
new (@"getnzb.*?(?<=\?|&)(r)=(?[^&=]+?)(?= |&|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
+ new (@"\b(\w*)?(_?(?[^&=]+?)(?= |&|$|;)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// Trackers Announce Keys; Designed for Qbit Json; should work for all in theory
new (@"announce(\.php)?(/|%2f|%3fpasskey%3d)(?[a-z0-9]{16,})|(?[a-z0-9]{16,})(/|%2f)announce"),
diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
index 19631c00c..1ad957c72 100644
--- a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
@@ -15,7 +15,7 @@ namespace NzbDrone.Core.Test.Datastore
public void SingleOrDefault_should_return_null_on_empty_db()
{
Mocker.Resolve()
- .OpenConnection().Query("SELECT * FROM Series")
+ .OpenConnection().Query("SELECT * FROM \"Series\"")
.SingleOrDefault()
.Should()
.BeNull();
diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
index 4a1226e1d..c5f8dc67d 100644
--- a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
@@ -1,8 +1,11 @@
+using System;
using System.Collections.Generic;
using System.Linq;
using FizzWare.NBuilder;
using FluentAssertions;
+using FluentAssertions.Equivalency;
using NUnit.Framework;
+using NzbDrone.Core.Datastore;
using NzbDrone.Core.History;
using NzbDrone.Core.Languages;
using NzbDrone.Core.MediaFiles;
@@ -15,6 +18,17 @@ namespace NzbDrone.Core.Test.Datastore
[TestFixture]
public class DatabaseRelationshipFixture : DbTest
{
+ [SetUp]
+ public void Setup()
+ {
+ AssertionOptions.AssertEquivalencyUsing(options =>
+ {
+ options.Using(ctx => ctx.Subject.Should().BeCloseTo(ctx.Expectation.ToUniversalTime(), TimeSpan.FromMilliseconds(20))).WhenTypeIs();
+ options.Using(ctx => ctx.Subject.Should().BeCloseTo(ctx.Expectation.Value.ToUniversalTime(), TimeSpan.FromMilliseconds(20))).WhenTypeIs();
+ return options;
+ });
+ }
+
[Test]
public void one_to_one()
{
diff --git a/src/NzbDrone.Core.Test/Datastore/Migration/070_delay_profileFixture.cs b/src/NzbDrone.Core.Test/Datastore/Migration/070_delay_profileFixture.cs
index bdc199f1f..90304067f 100644
--- a/src/NzbDrone.Core.Test/Datastore/Migration/070_delay_profileFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/Migration/070_delay_profileFixture.cs
@@ -1,4 +1,4 @@
-using System.Linq;
+using System.Linq;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Datastore.Migration;
@@ -26,12 +26,12 @@ namespace NzbDrone.Core.Test.Datastore.Migration
{
GrabDelay = 2,
Name = "TwoHours",
- Cutoff = "{}",
+ Cutoff = 0,
Items = "[]"
});
});
- var allProfiles = db.Query("SELECT * FROM DelayProfiles");
+ var allProfiles = db.Query("SELECT * FROM \"DelayProfiles\"");
allProfiles.Should().HaveCount(3);
allProfiles.Should().OnlyContain(c => c.PreferredProtocol == 1);
@@ -54,7 +54,7 @@ namespace NzbDrone.Core.Test.Datastore.Migration
});
});
- var tags = db.Query("SELECT * FROM Tags");
+ var tags = db.Query("SELECT * FROM \"Tags\"");
tags.Should().HaveCount(1);
tags.First().Label.Should().Be("delay-60");
@@ -83,17 +83,17 @@ namespace NzbDrone.Core.Test.Datastore.Migration
Status = 0,
Images = "[]",
Path = @"C:\Test\Series",
- Monitored = 1,
- SeasonFolder = 1,
- RunTime = 0,
+ Monitored = true,
+ SeasonFolder = true,
+ Runtime = 0,
SeriesType = 0,
- UseSceneNumbering = 0,
+ UseSceneNumbering = false,
Tags = "[1]"
});
});
- var tag = db.Query("SELECT Id, Label FROM Tags").Single();
- var series = db.Query("SELECT Tags FROM Series");
+ var tag = db.Query("SELECT \"Id\", \"Label\" FROM \"Tags\"").Single();
+ var series = db.Query("SELECT \"Tags\" FROM \"Series\"");
series.Should().HaveCount(1);
diff --git a/src/NzbDrone.Core.Test/Datastore/Migration/071_unknown_quality_in_profileFixture.cs b/src/NzbDrone.Core.Test/Datastore/Migration/071_unknown_quality_in_profileFixture.cs
index 4aa14402f..5f5d8b1c6 100644
--- a/src/NzbDrone.Core.Test/Datastore/Migration/071_unknown_quality_in_profileFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/Migration/071_unknown_quality_in_profileFixture.cs
@@ -1,6 +1,8 @@
+using System.Collections.Generic;
using System.Linq;
using FluentAssertions;
using NUnit.Framework;
+using NzbDrone.Common.Serializer;
using NzbDrone.Core.Datastore.Migration;
using NzbDrone.Core.Test.Framework;
@@ -19,12 +21,19 @@ namespace NzbDrone.Core.Test.Datastore.Migration
Id = 0,
Name = "SDTV",
Cutoff = 1,
- Items = "[ { \"quality\": 1, \"allowed\": true } ]",
+ Items = new List