diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml
index 9ca714922b7..ce5f1a9591b 100644
--- a/.github/workflows/compile.yml
+++ b/.github/workflows/compile.yml
@@ -1,4 +1,5 @@
name: Compile
+# Compiles the solution and runs unit tests.
on:
workflow_dispatch:
@@ -18,13 +19,16 @@ jobs:
steps:
- name: Clone repository
- uses: actions/checkout@v3.1.0
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Restore NuGet packages
run: nuget restore src/Orchard.sln
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.3.1
+ uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
- name: Compile
run: msbuild Orchard.proj /m /t:Compile /p:MvcBuildViews=true /p:TreatWarningsAsErrors=true -WarnAsError
+
+ - name: Test
+ run: msbuild Orchard.proj /m /t:Test
diff --git a/.github/workflows/specflow.yml b/.github/workflows/specflow.yml
new file mode 100644
index 00000000000..8e058809ebe
--- /dev/null
+++ b/.github/workflows/specflow.yml
@@ -0,0 +1,39 @@
+name: SpecFlow tests
+# Compiles the solution and runs unit tests, as well the SpecFlow tests on the main development branches.
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 0 * * *' # Every day at midnight.
+
+jobs:
+ compile:
+ name: SpecFlow tests
+ defaults:
+ run:
+ shell: pwsh
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ branch: [dev, 1.10.x]
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ with:
+ ref: ${{ matrix.branch }}
+
+ - name: Restore NuGet packages
+ run: nuget restore src/Orchard.sln
+
+ - name: Add msbuild to PATH
+ uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
+
+ - name: Compile
+ run: msbuild Orchard.proj /m /t:Compile /p:MvcBuildViews=true /p:TreatWarningsAsErrors=true -WarnAsError
+
+ - name: Test
+ run: msbuild Orchard.proj /m /t:Test
+
+ - name: Spec
+ run: msbuild Orchard.proj /m /t:Spec
diff --git a/src/Orchard.Specs/Hosting/Orchard.Web/Web.config b/src/Orchard.Specs/Hosting/Orchard.Web/Web.config
index 79431085e04..f1ddceef2cd 100644
--- a/src/Orchard.Specs/Hosting/Orchard.Web/Web.config
+++ b/src/Orchard.Specs/Hosting/Orchard.Web/Web.config
@@ -164,7 +164,7 @@
-
+
diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj
index 5031ed85fb9..87c775a47a9 100644
--- a/src/Orchard.Specs/Orchard.Specs.csproj
+++ b/src/Orchard.Specs/Orchard.Specs.csproj
@@ -200,6 +200,11 @@
True
True
+
+ True
+ True
+ Settings.feature
+
Text.feature
True
@@ -372,6 +377,10 @@
HostComponents.config
+
+ SpecFlowSingleFileGenerator
+ Settings.feature.cs
+
SpecFlowSingleFileGenerator
Text.feature.cs
diff --git a/src/Orchard.Specs/Settings.feature b/src/Orchard.Specs/Settings.feature
new file mode 100644
index 00000000000..d4567363911
--- /dev/null
+++ b/src/Orchard.Specs/Settings.feature
@@ -0,0 +1,14 @@
+Feature: Settings
+
+In order to manage my site
+As a privileged user
+I want to be able to see and change site settings
+
+Scenario: Adding a new site culture and selecting it as the default works
+
+ Given I have installed Orchard
+ When I go to "Admin/Settings/Index"
+ Then I should not see "hu-HU"
+ When I have "hu-HU" as the default culture
+ And I go to "Admin/Settings/Index"
+ Then I should see ""
diff --git a/src/Orchard.Specs/Settings.feature.cs b/src/Orchard.Specs/Settings.feature.cs
new file mode 100644
index 00000000000..83e95acf94b
--- /dev/null
+++ b/src/Orchard.Specs/Settings.feature.cs
@@ -0,0 +1,93 @@
+// ------------------------------------------------------------------------------
+//
+// This code was generated by SpecFlow (http://www.specflow.org/).
+// SpecFlow Version:1.9.0.77
+// SpecFlow Generator Version:1.9.0.0
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+// ------------------------------------------------------------------------------
+#region Designer generated code
+#pragma warning disable
+namespace Orchard.Specs
+{
+ using TechTalk.SpecFlow;
+
+
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.9.0.77")]
+ [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [NUnit.Framework.TestFixtureAttribute()]
+ [NUnit.Framework.DescriptionAttribute("Settings")]
+ public partial class SettingsFeature
+ {
+
+ private static TechTalk.SpecFlow.ITestRunner testRunner;
+
+#line 1 "Settings.feature"
+#line hidden
+
+ [NUnit.Framework.TestFixtureSetUpAttribute()]
+ public virtual void FeatureSetup()
+ {
+ testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner();
+ TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Settings", "\r\nIn order to manage my site\r\nAs a privileged user\r\nI want to be able to see and " +
+ "change site settings", ProgrammingLanguage.CSharp, ((string[])(null)));
+ testRunner.OnFeatureStart(featureInfo);
+ }
+
+ [NUnit.Framework.TestFixtureTearDownAttribute()]
+ public virtual void FeatureTearDown()
+ {
+ testRunner.OnFeatureEnd();
+ testRunner = null;
+ }
+
+ [NUnit.Framework.SetUpAttribute()]
+ public virtual void TestInitialize()
+ {
+ }
+
+ [NUnit.Framework.TearDownAttribute()]
+ public virtual void ScenarioTearDown()
+ {
+ testRunner.OnScenarioEnd();
+ }
+
+ public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo)
+ {
+ testRunner.OnScenarioStart(scenarioInfo);
+ }
+
+ public virtual void ScenarioCleanup()
+ {
+ testRunner.CollectScenarioErrors();
+ }
+
+ [NUnit.Framework.TestAttribute()]
+ [NUnit.Framework.DescriptionAttribute("Adding a new site culture and selecting it as the default works")]
+ public virtual void AddingANewSiteCultureAndSelectingItAsTheDefaultWorks()
+ {
+ TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Adding a new site culture and selecting it as the default works", ((string[])(null)));
+#line 7
+this.ScenarioSetup(scenarioInfo);
+#line 9
+ testRunner.Given("I have installed Orchard", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");
+#line 10
+ testRunner.When("I go to \"Admin/Settings/Index\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
+#line 11
+ testRunner.Then("I should not see \"hu-HU\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line 12
+ testRunner.When("I have \"hu-HU\" as the default culture", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
+#line 13
+ testRunner.And("I go to \"Admin/Settings/Index\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
+#line 14
+ testRunner.Then("I should see \"\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+ this.ScenarioCleanup();
+ }
+ }
+}
+#pragma warning restore
+#endregion
diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
index dad7f771fd0..5d8e4dea542 100644
--- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
+++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
@@ -80,6 +80,9 @@
..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll
+
+ ..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll
+
..\packages\IronRuby.1.1.3\lib\IronRuby.dll
diff --git a/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ModuleStepTest.cs b/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ModuleStepTest.cs
index ed850d4c73b..8bd77d1e35b 100644
--- a/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ModuleStepTest.cs
+++ b/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ModuleStepTest.cs
@@ -19,6 +19,7 @@
using Orchard.Environment.Features;
using Orchard.Environment.State;
using Orchard.Events;
+using Orchard.Locking;
using Orchard.Packaging.GalleryServer;
using Orchard.Packaging.Models;
using Orchard.Packaging.Services;
@@ -57,6 +58,7 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterType().AsSelf();
builder.RegisterType().As();
builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
@@ -65,6 +67,7 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterInstance(_packagesInRepository).As();
builder.RegisterInstance(_packageManager).As();
builder.RegisterType().As().SingleInstance();
+ builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
builder.RegisterType();
builder.RegisterSource(new EventsRegistrationSource());
diff --git a/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ThemeStepTest.cs b/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ThemeStepTest.cs
index 07eda2e9dc4..934744a7d1f 100644
--- a/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ThemeStepTest.cs
+++ b/src/Orchard.Tests.Modules/Recipes/RecipeHandlers/ThemeStepTest.cs
@@ -19,6 +19,7 @@
using Orchard.Environment.State;
using Orchard.Events;
using Orchard.FileSystems.VirtualPath;
+using Orchard.Locking;
using Orchard.Packaging.GalleryServer;
using Orchard.Packaging.Services;
using Orchard.Recipes.Models;
@@ -60,6 +61,7 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterType().AsSelf();
builder.RegisterType().As();
builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
@@ -71,6 +73,7 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterInstance(testVirtualPathProvider).As();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As();
+ builder.RegisterType().As().SingleInstance();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType();
diff --git a/src/Orchard.Tests.Modules/Settings/Blueprint/ShellDescriptorManagerTests.cs b/src/Orchard.Tests.Modules/Settings/Blueprint/ShellDescriptorManagerTests.cs
index 3b38d6a4dea..87e94a01ad6 100644
--- a/src/Orchard.Tests.Modules/Settings/Blueprint/ShellDescriptorManagerTests.cs
+++ b/src/Orchard.Tests.Modules/Settings/Blueprint/ShellDescriptorManagerTests.cs
@@ -14,6 +14,7 @@
using Orchard.Events;
using Orchard.Caching;
using Orchard.Core.Settings.State.Records;
+using Orchard.Locking;
namespace Orchard.Tests.Modules.Settings.Blueprint {
[TestFixture]
@@ -24,6 +25,8 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterType().As();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As();
+ builder.RegisterType().As();
+ builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
diff --git a/src/Orchard.Tests.Modules/Users/Controllers/AccountControllerTests.cs b/src/Orchard.Tests.Modules/Users/Controllers/AccountControllerTests.cs
index eed55f7ec1e..94cf64b5b52 100644
--- a/src/Orchard.Tests.Modules/Users/Controllers/AccountControllerTests.cs
+++ b/src/Orchard.Tests.Modules/Users/Controllers/AccountControllerTests.cs
@@ -71,6 +71,8 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
+ builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterInstance(new Work>(resolve => _container.Resolve>())).AsSelf();
builder.RegisterType().As();
diff --git a/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs b/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs
index 0138ddb2427..4d4d2ef2ba6 100644
--- a/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs
+++ b/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs
@@ -68,6 +68,7 @@ public void Init() {
//builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.RegisterType().As();
builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
@@ -77,7 +78,6 @@ public void Init() {
builder.RegisterType().As();
builder.RegisterInstance(new ShellSettings { Name = ShellSettings.DefaultName, DataProvider = "SqlCe" });
builder.RegisterType().As();
- //builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterAutoMocking(MockBehavior.Loose);
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
@@ -135,11 +135,12 @@ public void DefaultPasswordFormatShouldBeHashedAndHaveSalt() {
[Test]
public void SaltAndPasswordShouldBeDifferentEvenWithSameSourcePassword() {
- var user1 = _membershipService.CreateUser(new CreateUserParams("a", "b", "c", null, null, true, false));
+ var password = "Password1!";
+ var user1 = _membershipService.CreateUser(new CreateUserParams("user1", password, "user1@email.com", null, null, true, false));
_session.Flush();
_session.Clear();
- var user2 = _membershipService.CreateUser(new CreateUserParams("d", "b", "e", null, null, true, false));
+ var user2 = _membershipService.CreateUser(new CreateUserParams("user2", password, "user2@email.com", null, null, true, false));
_session.Flush();
_session.Clear();
@@ -150,8 +151,8 @@ public void SaltAndPasswordShouldBeDifferentEvenWithSameSourcePassword() {
Assert.That(user1Record.Password, Is.Not.EqualTo(user2Record.Password));
List validationErrors;
- Assert.That(_membershipService.ValidateUser("a", "b", out validationErrors), Is.Not.Null);
- Assert.That(_membershipService.ValidateUser("d", "b", out validationErrors), Is.Not.Null);
+ Assert.That(_membershipService.ValidateUser("user1", password, out validationErrors), Is.Not.Null);
+ Assert.That(_membershipService.ValidateUser("user2", password, out validationErrors), Is.Not.Null);
}
[Test]
diff --git a/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs b/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs
index f73c0f080e3..05cdcb0e3f6 100644
--- a/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs
+++ b/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs
@@ -106,7 +106,10 @@ public void Cleanup() {
[Test]
public void AllDataTypesCanBeQueried() {
- var dt = DateTime.Now;
+ var now = DateTime.Now;
+ // NHibernate stores DateTime values with seconds-precision, so everything below that needs to be truncated
+ // so that the query works correctly. Thanks to https://stackoverflow.com/a/1005222 for elegant solution.
+ now = now.AddTicks(-(now.Ticks % TimeSpan.TicksPerSecond));
_manager.Create("lambda", init => {
init.Record.BooleanStuff = true;
@@ -116,7 +119,7 @@ public void AllDataTypesCanBeQueried() {
init.Record.IntegerStuff = 0;
init.Record.LongStuff = 0;
init.Record.StringStuff = "0";
- init.Record.DateTimeStuff = dt;
+ init.Record.DateTimeStuff = now;
});
_session.Flush();
@@ -144,7 +147,7 @@ public void AllDataTypesCanBeQueried() {
lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord(), x => x.Eq("StringStuff", "0")).List();
Assert.That(lambda.Count(), Is.EqualTo(1));
- lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord(), x => x.Eq("DateTimeStuff", dt)).List();
+ lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord(), x => x.Eq("DateTimeStuff", now)).List();
Assert.That(lambda.Count(), Is.EqualTo(1));
}
@@ -940,31 +943,29 @@ public void ShouldQueryUsingOperatorLtProperty() {
}
[Test]
+ // This is a potentially flaky test, but failure due to randomness is extremely unlikely.
public void ShouldSortRandomly() {
- _manager.Create("lambda", init => {
- init.Record.IntegerStuff = 1;
- });
-
- _manager.Create("lambda", init => {
- init.Record.IntegerStuff = 2;
- });
+ var itemCount = 10;
+ for (int i = 0; i < itemCount; i++) {
+ _manager.Create("lambda", init => {
+ init.Record.IntegerStuff = i;
+ });
+ }
- _manager.Create("lambda", init => {
- init.Record.IntegerStuff = 3;
- });
_session.Flush();
- var result = _manager.HqlQuery().ForType("lambda").List();
- Assert.That(result.Count(), Is.EqualTo(3));
+ var items = _manager.HqlQuery().ForType("lambda").List();
+ Assert.That(items.Count(), Is.EqualTo(itemCount));
- var firstResults = new List();
+ var results = new List();
for (int i = 0; i < 10; i++) {
- result = _manager.HqlQuery().Join(alias => alias.ContentPartRecord()).OrderBy(x => x.Named("civ"), order => order.Random()).List();
- firstResults.Add(result.First().As().Record.IntegerStuff);
+ items = _manager.HqlQuery().Join(alias =>
+ alias.ContentPartRecord()).OrderBy(x => x.Named("civ"), order => order.Random()).List();
+ results.Add(string.Join("", items.Select(item => item.As().Record.IntegerStuff)));
}
- Assert.That(firstResults.Distinct().Count(), Is.GreaterThan(1));
+ Assert.That(results.Distinct().Count(), Is.GreaterThan(1));
}
[Test]
diff --git a/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs b/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs
index 2ff3a87a9a8..0c25bf4cb97 100644
--- a/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs
+++ b/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs
@@ -8,10 +8,13 @@
using Orchard.DisplayManagement.Descriptors;
using Orchard.DisplayManagement.Descriptors.ResourceBindingStrategy;
using Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy;
+using Orchard.Environment;
using Orchard.Environment.Descriptor.Models;
using Orchard.Environment.Extensions;
using Orchard.Environment.Extensions.Models;
using Orchard.FileSystems.VirtualPath;
+using Orchard.Tests.Localization;
+using Orchard.UI.Resources;
namespace Orchard.Tests.DisplayManagement.Descriptors {
[TestFixture]
@@ -29,8 +32,10 @@ protected override void Register(Autofac.ContainerBuilder builder) {
builder.Register(ctx => _descriptor);
builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterInstance(_testViewEngine).As();
builder.RegisterInstance(_testVirtualPathProvider).As();
+ builder.RegisterInstance(new Work(resolve => new StubWorkContext())).AsSelf();
var extensionManager = new Mock();
builder.Register(ctx => extensionManager);
diff --git a/src/Orchard.Tests/Environment/Features/FeatureManagerTests.cs b/src/Orchard.Tests/Environment/Features/FeatureManagerTests.cs
index fa988a1654f..6bae88a3b96 100644
--- a/src/Orchard.Tests/Environment/Features/FeatureManagerTests.cs
+++ b/src/Orchard.Tests/Environment/Features/FeatureManagerTests.cs
@@ -16,6 +16,7 @@
using Orchard.Environment.Features;
using Orchard.Environment.State;
using Orchard.Events;
+using Orchard.Locking;
using Orchard.Tests.Environment.Extensions;
using Orchard.Tests.Stubs;
@@ -27,10 +28,10 @@ public class FeatureManagerTests : DatabaseEnabledTestsBase {
protected override IEnumerable DatabaseTypes {
get {
return new[] {
- typeof (ShellDescriptorRecord),
- typeof (ShellFeatureRecord),
- typeof (ShellParameterRecord),
- };
+ typeof (ShellDescriptorRecord),
+ typeof (ShellFeatureRecord),
+ typeof (ShellParameterRecord),
+ };
}
}
@@ -39,11 +40,13 @@ public override void Register(ContainerBuilder builder) {
builder.RegisterInstance(_folders).As();
builder.RegisterType().As();
builder.RegisterType().As();
+ builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
+ builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
builder.RegisterSource(new EventsRegistrationSource());
diff --git a/src/Orchard.Tests/Localization/TextTests.cs b/src/Orchard.Tests/Localization/TextTests.cs
index 628adc580dc..c5c69d84e3a 100644
--- a/src/Orchard.Tests/Localization/TextTests.cs
+++ b/src/Orchard.Tests/Localization/TextTests.cs
@@ -1,12 +1,11 @@
-using Autofac;
+using System.Collections.Generic;
+using System.Web;
+using Autofac;
using Moq;
using NUnit.Framework;
using Orchard.Localization;
using Orchard.Localization.Services;
-using Orchard.Mvc;
using Orchard.Tests.Stubs;
-using System.Collections.Generic;
-using System.Web;
namespace Orchard.Tests.Localization {
[TestFixture]
@@ -18,7 +17,7 @@ public class TextTests {
public void Init() {
var mockLocalizedManager = new Mock();
mockLocalizedManager
- .Setup(x => x.GetLocalizedString(new List { It.IsAny() }, It.IsAny(), It.IsAny()))
+ .Setup(x => x.GetLocalizedString(It.IsAny>(), It.IsAny(), It.IsAny()))
.Returns(new FormatForScope("foo {0}", null));
var builder = new ContainerBuilder();
@@ -38,8 +37,7 @@ public void TextHtmlEncodeAllArguments() {
}
[Test]
- public void TextDoesEncodeHtmlEncodedArguments()
- {
+ public void TextDoesEncodeHtmlEncodedArguments() {
Assert.That(_text.Get("foo {0}", new HtmlString("bar")).Text, Is.EqualTo("foo bar"));
Assert.That(_text.Get("foo {0}", new HtmlString("")).Text, Is.EqualTo("foo "));
}
diff --git a/src/Orchard.Tests/UI/Resources/ResourceManagerTests.cs b/src/Orchard.Tests/UI/Resources/ResourceManagerTests.cs
index 1b3c0fdd9b6..2ab6dc85a61 100644
--- a/src/Orchard.Tests/UI/Resources/ResourceManagerTests.cs
+++ b/src/Orchard.Tests/UI/Resources/ResourceManagerTests.cs
@@ -13,7 +13,7 @@ public class ResourceManagerTests {
private IResourceManager _resourceManager;
private IResourceFileHashProvider _resourceFileHashProvider;
private TestManifestProvider _testManifest;
- private string _appPath = "/AppPath/";
+ private readonly string _appPath = "/AppPath/";
private class TestManifestProvider : IResourceManifestProvider {
public Action DefineManifest { get; set; }
@@ -30,10 +30,6 @@ public void BuildManifests(ResourceManifestBuilder builder) {
}
private void VerifyPaths(string resourceType, RequireSettings defaultSettings, string expectedPaths) {
- VerifyPaths(resourceType, defaultSettings, expectedPaths, false);
- }
-
- private void VerifyPaths(string resourceType, RequireSettings defaultSettings, string expectedPaths, bool ssl) {
defaultSettings = defaultSettings ?? new RequireSettings();
var requiredResources = _resourceManager.BuildRequiredResources(resourceType);
var renderedResources = string.Join(",", requiredResources.Select(context => context
@@ -57,90 +53,68 @@ public void Init() {
[Test]
public void ReleasePathIsTheDefaultPath() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
- };
+ _testManifest.DefineManifest = m => m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", null, "script1.min.js");
}
[Test]
public void DebugPathIsUsedWithDebugMode() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
- };
+ _testManifest.DefineManifest = m => m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", new RequireSettings { DebugMode = true }, "script1.js");
}
[Test]
public void ReleasePathIsUsedWhenNoDebugPath() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js");
- };
+ _testManifest.DefineManifest = m => m.DefineResource("script", "Script1").SetUrl("script1.min.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", new RequireSettings { DebugMode = true }, "script1.min.js");
}
[Test]
public void DefaultSettingsAreOverriddenByUseDebugMode() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
- };
+ _testManifest.DefineManifest = m => m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js");
_resourceManager.Require("script", "Script1").UseDebugMode();
VerifyPaths("script", new RequireSettings { DebugMode = false }, "script1.js");
}
[Test]
public void CdnPathIsUsedInCdnMode() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.js").SetCdn("http://cdn/script1.min.js");
- };
+ _testManifest.DefineManifest = m => m
+ .DefineResource("script", "Script1")
+ .SetUrl("script1.js")
+ .SetCdn("http://cdn/script1.min.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", new RequireSettings { CdnMode = true }, "http://cdn/script1.min.js");
}
[Test]
public void CdnSslPathIsUsedInCdnMode() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.js").SetCdn("https://cdn/script1.min.js");
- };
+ _testManifest.DefineManifest = m => m
+ .DefineResource("script", "Script1")
+ .SetUrl("script1.js")
+ .SetCdn("https://cdn/script1.min.js");
_resourceManager.Require("script", "Script1");
- VerifyPaths("script", new RequireSettings { CdnMode = true }, "https://cdn/script1.min.js", true);
- }
-
- [Test]
- public void LocalPathIsUsedInCdnModeNotSupportsSsl() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js").SetCdn("http://cdn/script1.min.js", "http://cdn/script1.js");
- };
- _resourceManager.Require("script", "Script1");
- VerifyPaths("script", new RequireSettings { CdnMode = true }, "script1.min.js", true);
- }
-
- [Test]
- public void LocalDebugPathIsUsedInCdnModeNotSupportsSslAndDebug() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js").SetCdn("http://cdn/script1.min.js", "http://cdn/script1.js");
- };
- _resourceManager.Require("script", "Script1");
- VerifyPaths("script", new RequireSettings { CdnMode = true, DebugMode = true }, "script1.js", true);
+ VerifyPaths("script", new RequireSettings { CdnMode = true }, "https://cdn/script1.min.js");
}
[Test]
public void CdnDebugPathIsUsedInCdnModeAndDebugMode() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.js").SetCdn("http://cdn/script1.min.js", "http://cdn/script1.js");
- };
+ _testManifest.DefineManifest = m => m
+ .DefineResource("script", "Script1")
+ .SetUrl("script1.js")
+ .SetCdn("http://cdn/script1.min.js", "http://cdn/script1.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", new RequireSettings { CdnMode = true, DebugMode = true }, "http://cdn/script1.js");
}
[Test]
public void DebugPathIsUsedInCdnModeAndDebugModeAndThereIsNoCdnDebugPath() {
- _testManifest.DefineManifest = m => {
- m.DefineResource("script", "Script1").SetUrl("script1.min.js", "script1.js").SetCdn("http://cdn/script1.min.js");
- };
+ _testManifest.DefineManifest = m => m
+ .DefineResource("script", "Script1")
+ .SetUrl("script1.min.js", "script1.js")
+ .SetCdn("http://cdn/script1.min.js");
_resourceManager.Require("script", "Script1");
VerifyPaths("script", new RequireSettings { CdnMode = true, DebugMode = true }, "script1.js");
}
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Web.config b/src/Orchard.Web/Modules/Orchard.Email/Web.config
index 933fe9ba185..0df49e40c1c 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Web.config
+++ b/src/Orchard.Web/Modules/Orchard.Email/Web.config
@@ -29,6 +29,7 @@
+
diff --git a/src/Orchard.Web/Modules/Orchard.Glimpse/Web.config b/src/Orchard.Web/Modules/Orchard.Glimpse/Web.config
index d39700e0c23..9fcbe1d7673 100644
--- a/src/Orchard.Web/Modules/Orchard.Glimpse/Web.config
+++ b/src/Orchard.Web/Modules/Orchard.Glimpse/Web.config
@@ -56,7 +56,7 @@
-
+
diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj b/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj
index 6ea952ce296..3b731591222 100644
--- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj
+++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj
@@ -44,8 +44,8 @@
False
..\..\..\..\..\lib\moq\Moq.dll
-
- ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dllHintPath>
..\..\..\..\..\lib\nunit\nunit.framework.dll
diff --git a/src/Orchard.Web/Modules/Orchard.Resources/Web.config b/src/Orchard.Web/Modules/Orchard.Resources/Web.config
index 0a4b7f43f38..68c59f718e3 100644
--- a/src/Orchard.Web/Modules/Orchard.Resources/Web.config
+++ b/src/Orchard.Web/Modules/Orchard.Resources/Web.config
@@ -60,7 +60,7 @@
-
+