mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Compare commits
72 Commits
issue/8684
...
issue/8686
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f27eb2c4c | ||
|
|
7bbc12d3b8 | ||
|
|
a3e6e4887f | ||
|
|
1354e367b7 | ||
|
|
1ad1aa278e | ||
|
|
844b60059e | ||
|
|
984a8ca0ac | ||
|
|
e333952b68 | ||
|
|
64eafbcea8 | ||
|
|
824846036e | ||
|
|
19847d2e95 | ||
|
|
cb12c378fb | ||
|
|
2e22e5c86f | ||
|
|
9c8e5594cf | ||
|
|
17bd0e58e4 | ||
|
|
d14aafba8e | ||
|
|
9934255e6f | ||
|
|
03a0361d76 | ||
|
|
68a03c5675 | ||
|
|
63634d3a4d | ||
|
|
4962a66c12 | ||
|
|
c11688a26b | ||
|
|
f367a79834 | ||
|
|
392afad570 | ||
|
|
e9886f0b9b | ||
|
|
be828e9ff9 | ||
|
|
b1d058173e | ||
|
|
9a487037b8 | ||
|
|
ec3916307e | ||
|
|
9d2bb2bec5 | ||
|
|
810e5f7cc0 | ||
|
|
9340a021c1 | ||
|
|
5d911c2193 | ||
|
|
6e8d7d2d50 | ||
|
|
75e17d410c | ||
|
|
d266db61de | ||
|
|
e4f5632236 | ||
|
|
70ed140231 | ||
|
|
f610c53bcf | ||
|
|
86c7350358 | ||
|
|
d2eccf5c2c | ||
|
|
a912162e96 | ||
|
|
62b2f65112 | ||
|
|
3aaf2272e1 | ||
|
|
29f58677a3 | ||
|
|
0fd452a4f9 | ||
|
|
e22e2dbe72 | ||
|
|
99190fe4e5 | ||
|
|
3f214897eb | ||
|
|
ae7763eb7c | ||
|
|
ddd08c227d | ||
|
|
6bda87d680 | ||
|
|
975a802ed0 | ||
|
|
8446bb94d3 | ||
|
|
b714a44feb | ||
|
|
5065e8fb20 | ||
|
|
12d7494a54 | ||
|
|
be2ba866e3 | ||
|
|
087f2849b1 | ||
|
|
605551dde2 | ||
|
|
7e3d1c8cbc | ||
|
|
9f86b7dc0f | ||
|
|
c821afa9a5 | ||
|
|
42f04dd11b | ||
|
|
aa71039416 | ||
|
|
eeb2e4764a | ||
|
|
6ab590bc7a | ||
|
|
bbafeded05 | ||
|
|
5f0c0c2fec | ||
|
|
d1043b9f4f | ||
|
|
077bfa6ae0 | ||
|
|
8d7a35b0f0 |
8
.github/workflows/compile.yml
vendored
8
.github/workflows/compile.yml
vendored
@@ -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
|
||||
|
||||
39
.github/workflows/specflow.yml
vendored
Normal file
39
.github/workflows/specflow.yml
vendored
Normal file
@@ -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
|
||||
@@ -164,7 +164,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
|
||||
|
||||
@@ -200,6 +200,11 @@
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="Settings.feature.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Settings.feature</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Text.feature.cs">
|
||||
<DependentUpon>Text.feature</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
@@ -372,6 +377,10 @@
|
||||
<DependentUpon>HostComponents.config</DependentUpon>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Settings.feature">
|
||||
<Generator>SpecFlowSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.feature.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Text.feature">
|
||||
<Generator>SpecFlowSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Text.feature.cs</LastGenOutput>
|
||||
|
||||
14
src/Orchard.Specs/Settings.feature
Normal file
14
src/Orchard.Specs/Settings.feature
Normal file
@@ -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 "<option selected="selected">hu-HU</option>"
|
||||
93
src/Orchard.Specs/Settings.feature.cs
generated
Normal file
93
src/Orchard.Specs/Settings.feature.cs
generated
Normal file
@@ -0,0 +1,93 @@
|
||||
// ------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 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.
|
||||
// </auto-generated>
|
||||
// ------------------------------------------------------------------------------
|
||||
#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 \"<option selected=\"selected\">hu-HU</option>\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
|
||||
#line hidden
|
||||
this.ScenarioCleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endregion
|
||||
@@ -80,6 +80,9 @@
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="IronRuby, Version=1.1.3.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\IronRuby.1.1.3\lib\IronRuby.dll</HintPath>
|
||||
</Reference>
|
||||
|
||||
@@ -19,6 +19,7 @@ using Orchard.Environment.Extensions.Models;
|
||||
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 @@ namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
|
||||
builder.RegisterType<RecipeExecutionLogger>().AsSelf();
|
||||
builder.RegisterType<ExtensionManager>().As<IExtensionManager>();
|
||||
builder.RegisterType<FeatureManager>().As<IFeatureManager>();
|
||||
builder.RegisterType<LockingProvider>().As<ILockingProvider>();
|
||||
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||
builder.RegisterType<StubParallelCacheContext>().As<IParallelCacheContext>();
|
||||
builder.RegisterType<StubAsyncTokenProvider>().As<IAsyncTokenProvider>();
|
||||
@@ -65,6 +67,7 @@ namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
|
||||
builder.RegisterInstance(_packagesInRepository).As<IPackagingSourceManager>();
|
||||
builder.RegisterInstance(_packageManager).As<IPackageManager>();
|
||||
builder.RegisterType<ShellStateManager>().As<IShellStateManager>().SingleInstance();
|
||||
builder.RegisterType<Signals>().As<ISignals>().SingleInstance();
|
||||
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
||||
builder.RegisterType<ModuleStep>();
|
||||
builder.RegisterSource(new EventsRegistrationSource());
|
||||
|
||||
@@ -19,6 +19,7 @@ using Orchard.Environment.Features;
|
||||
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 @@ namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
|
||||
builder.RegisterType<RecipeExecutionLogger>().AsSelf();
|
||||
builder.RegisterType<ExtensionManager>().As<IExtensionManager>();
|
||||
builder.RegisterType<FeatureManager>().As<IFeatureManager>();
|
||||
builder.RegisterType<LockingProvider>().As<ILockingProvider>();
|
||||
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||
builder.RegisterType<StubParallelCacheContext>().As<IParallelCacheContext>();
|
||||
builder.RegisterType<StubAsyncTokenProvider>().As<IAsyncTokenProvider>();
|
||||
@@ -71,6 +73,7 @@ namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
|
||||
builder.RegisterInstance(testVirtualPathProvider).As<IVirtualPathProvider>();
|
||||
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
||||
builder.RegisterType<ThemeService>().As<IThemeService>();
|
||||
builder.RegisterType<Signals>().As<ISignals>().SingleInstance();
|
||||
builder.RegisterType<StubOrchardServices>().As<IOrchardServices>();
|
||||
builder.RegisterType<StubSiteThemeService>().As<ISiteThemeService>();
|
||||
builder.RegisterType<ThemeStep>();
|
||||
|
||||
@@ -14,6 +14,7 @@ using Orchard.Environment.Descriptor.Models;
|
||||
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 @@ namespace Orchard.Tests.Modules.Settings.Blueprint {
|
||||
builder.RegisterType<DefaultCacheManager>().As<ICacheManager>();
|
||||
builder.RegisterType<DefaultCacheHolder>().As<ICacheHolder>().SingleInstance();
|
||||
builder.RegisterType<DefaultCacheContextAccessor>().As<ICacheContextAccessor>();
|
||||
builder.RegisterType<LockingProvider>().As<ILockingProvider>();
|
||||
builder.RegisterType<Signals>().As<ISignals>().SingleInstance();
|
||||
builder.RegisterType<ShellDescriptorManager>().As<IShellDescriptorManager>().SingleInstance();
|
||||
builder.RegisterType<ShellStateManager>().As<IShellStateManager>().SingleInstance();
|
||||
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
||||
|
||||
@@ -71,6 +71,8 @@ namespace Orchard.Tests.Modules.Users.Controllers {
|
||||
builder.RegisterType<UserPartHandler>().As<IContentHandler>();
|
||||
builder.RegisterType<OrchardServices>().As<IOrchardServices>();
|
||||
builder.RegisterType<AccountValidationService>().As<IAccountValidationService>();
|
||||
builder.RegisterType<PasswordService>().As<IPasswordService>();
|
||||
builder.RegisterType<PasswordHistoryService>().As<IPasswordHistoryService>();
|
||||
|
||||
builder.RegisterInstance(new Work<IEnumerable<IShapeTableEventHandler>>(resolve => _container.Resolve<IEnumerable<IShapeTableEventHandler>>())).AsSelf();
|
||||
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
||||
|
||||
@@ -68,6 +68,7 @@ namespace Orchard.Tests.Modules.Users.Services
|
||||
//builder.RegisterModule(new ImplicitCollectionSupportModule());
|
||||
builder.RegisterType<MembershipValidationService>().As<IMembershipValidationService>();
|
||||
builder.RegisterType<MembershipService>().As<IMembershipService>();
|
||||
builder.RegisterType<PasswordService>().As<IPasswordService>();
|
||||
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||
@@ -77,7 +78,6 @@ namespace Orchard.Tests.Modules.Users.Services
|
||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||
builder.RegisterInstance(new ShellSettings { Name = ShellSettings.DefaultName, DataProvider = "SqlCe" });
|
||||
builder.RegisterType<UserPartHandler>().As<IContentHandler>();
|
||||
//builder.RegisterType<StubWorkContextAccessor>().As<IWorkContextAccessor>();
|
||||
builder.RegisterType<OrchardServices>().As<IOrchardServices>();
|
||||
builder.RegisterAutoMocking(MockBehavior.Loose);
|
||||
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
|
||||
@@ -135,11 +135,12 @@ namespace Orchard.Tests.Modules.Users.Services
|
||||
|
||||
[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 @@ namespace Orchard.Tests.Modules.Users.Services
|
||||
Assert.That(user1Record.Password, Is.Not.EqualTo(user2Record.Password));
|
||||
|
||||
List<LocalizedString> 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]
|
||||
|
||||
@@ -106,7 +106,10 @@ namespace Orchard.Tests.ContentManagement {
|
||||
|
||||
[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<LambdaPart>("lambda", init => {
|
||||
init.Record.BooleanStuff = true;
|
||||
@@ -116,7 +119,7 @@ namespace Orchard.Tests.ContentManagement {
|
||||
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 @@ namespace Orchard.Tests.ContentManagement {
|
||||
lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord<LambdaRecord>(), x => x.Eq("StringStuff", "0")).List();
|
||||
Assert.That(lambda.Count(), Is.EqualTo(1));
|
||||
|
||||
lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord<LambdaRecord>(), x => x.Eq("DateTimeStuff", dt)).List();
|
||||
lambda = _manager.HqlQuery().Where(alias => alias.ContentPartRecord<LambdaRecord>(), x => x.Eq("DateTimeStuff", now)).List();
|
||||
Assert.That(lambda.Count(), Is.EqualTo(1));
|
||||
}
|
||||
|
||||
@@ -940,31 +943,29 @@ namespace Orchard.Tests.ContentManagement {
|
||||
}
|
||||
|
||||
[Test]
|
||||
// This is a potentially flaky test, but failure due to randomness is extremely unlikely.
|
||||
public void ShouldSortRandomly() {
|
||||
_manager.Create<LambdaPart>("lambda", init => {
|
||||
init.Record.IntegerStuff = 1;
|
||||
});
|
||||
|
||||
_manager.Create<LambdaPart>("lambda", init => {
|
||||
init.Record.IntegerStuff = 2;
|
||||
});
|
||||
|
||||
_manager.Create<LambdaPart>("lambda", init => {
|
||||
init.Record.IntegerStuff = 3;
|
||||
});
|
||||
_session.Flush();
|
||||
|
||||
var result = _manager.HqlQuery().ForType("lambda").List();
|
||||
Assert.That(result.Count(), Is.EqualTo(3));
|
||||
|
||||
var firstResults = new List<int>();
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
result = _manager.HqlQuery().Join(alias => alias.ContentPartRecord<LambdaRecord>()).OrderBy(x => x.Named("civ"), order => order.Random()).List();
|
||||
firstResults.Add(result.First().As<LambdaPart>().Record.IntegerStuff);
|
||||
var itemCount = 10;
|
||||
for (int i = 0; i < itemCount; i++) {
|
||||
_manager.Create<LambdaPart>("lambda", init => {
|
||||
init.Record.IntegerStuff = i;
|
||||
});
|
||||
}
|
||||
|
||||
Assert.That(firstResults.Distinct().Count(), Is.GreaterThan(1));
|
||||
_session.Flush();
|
||||
|
||||
var items = _manager.HqlQuery().ForType("lambda").List();
|
||||
Assert.That(items.Count(), Is.EqualTo(itemCount));
|
||||
|
||||
var results = new List<string>();
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
items = _manager.HqlQuery().Join(alias =>
|
||||
alias.ContentPartRecord<LambdaRecord>()).OrderBy(x => x.Named("civ"), order => order.Random()).List();
|
||||
results.Add(string.Join("", items.Select(item => item.As<LambdaPart>().Record.IntegerStuff)));
|
||||
}
|
||||
|
||||
Assert.That(results.Distinct().Count(), Is.GreaterThan(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -8,10 +8,13 @@ using NUnit.Framework;
|
||||
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 @@ namespace Orchard.Tests.DisplayManagement.Descriptors {
|
||||
|
||||
builder.Register(ctx => _descriptor);
|
||||
builder.RegisterType<StylesheetBindingStrategy>().As<IShapeTableProvider>();
|
||||
builder.RegisterType<ResourceFileHashProvider>().As<IResourceFileHashProvider>();
|
||||
builder.RegisterInstance(_testViewEngine).As<IShapeTemplateViewEngine>();
|
||||
builder.RegisterInstance(_testVirtualPathProvider).As<IVirtualPathProvider>();
|
||||
builder.RegisterInstance(new Work<WorkContext>(resolve => new StubWorkContext())).AsSelf();
|
||||
|
||||
var extensionManager = new Mock<IExtensionManager>();
|
||||
builder.Register(ctx => extensionManager);
|
||||
|
||||
@@ -16,6 +16,7 @@ using Orchard.Environment.Extensions.Folders;
|
||||
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 @@ namespace Orchard.Tests.Environment.Features {
|
||||
protected override IEnumerable<Type> DatabaseTypes {
|
||||
get {
|
||||
return new[] {
|
||||
typeof (ShellDescriptorRecord),
|
||||
typeof (ShellFeatureRecord),
|
||||
typeof (ShellParameterRecord),
|
||||
};
|
||||
typeof (ShellDescriptorRecord),
|
||||
typeof (ShellFeatureRecord),
|
||||
typeof (ShellParameterRecord),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,11 +40,13 @@ namespace Orchard.Tests.Environment.Features {
|
||||
builder.RegisterInstance(_folders).As<IExtensionFolders>();
|
||||
builder.RegisterType<ExtensionManager>().As<IExtensionManager>();
|
||||
builder.RegisterType<FeatureManager>().As<IFeatureManager>();
|
||||
builder.RegisterType<LockingProvider>().As<ILockingProvider>();
|
||||
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||
builder.RegisterType<StubParallelCacheContext>().As<IParallelCacheContext>();
|
||||
builder.RegisterType<StubAsyncTokenProvider>().As<IAsyncTokenProvider>();
|
||||
builder.RegisterType<ShellDescriptorManager>().As<IShellDescriptorManager>().SingleInstance();
|
||||
builder.RegisterType<ShellStateManager>().As<IShellStateManager>().SingleInstance();
|
||||
builder.RegisterType<Signals>().As<ISignals>().SingleInstance();
|
||||
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
||||
builder.RegisterSource(new EventsRegistrationSource());
|
||||
|
||||
|
||||
@@ -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 @@ namespace Orchard.Tests.Localization {
|
||||
public void Init() {
|
||||
var mockLocalizedManager = new Mock<ILocalizedStringManager>();
|
||||
mockLocalizedManager
|
||||
.Setup(x => x.GetLocalizedString(new List<string> { It.IsAny<string>() }, It.IsAny<string>(), It.IsAny<string>()))
|
||||
.Setup(x => x.GetLocalizedString(It.IsAny<IEnumerable<string>>(), It.IsAny<string>(), It.IsAny<string>()))
|
||||
.Returns(new FormatForScope("foo {0}", null));
|
||||
|
||||
var builder = new ContainerBuilder();
|
||||
@@ -38,8 +37,7 @@ namespace Orchard.Tests.Localization {
|
||||
}
|
||||
|
||||
[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("<bar>")).Text, Is.EqualTo("foo <bar>"));
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Orchard.Tests.UI.Resources {
|
||||
private IResourceManager _resourceManager;
|
||||
private IResourceFileHashProvider _resourceFileHashProvider;
|
||||
private TestManifestProvider _testManifest;
|
||||
private string _appPath = "/AppPath/";
|
||||
private readonly string _appPath = "/AppPath/";
|
||||
|
||||
private class TestManifestProvider : IResourceManifestProvider {
|
||||
public Action<ResourceManifest> DefineManifest { get; set; }
|
||||
@@ -30,10 +30,6 @@ namespace Orchard.Tests.UI.Resources {
|
||||
}
|
||||
|
||||
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 @@ namespace Orchard.Tests.UI.Resources {
|
||||
|
||||
[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");
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<compilation targetFramework="4.8">
|
||||
<assemblies>
|
||||
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\lib\moq\Moq.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>HintPath>
|
||||
</Reference>
|
||||
<Reference Include="nunit.framework">
|
||||
<HintPath>..\..\..\..\..\lib\nunit\nunit.framework.dll</HintPath>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
|
||||
|
||||
Reference in New Issue
Block a user