Fixed up base web test, removes RequiresDbSetup in place of new database behavior - NoDatabasePerFixture.
Fixed issue with another test... no idea how it didn't show up failing before. Fixes issue with string extensions and an infinite loop when the string to strip is empty/null.
This commit is contained in:
@@ -188,6 +188,8 @@ namespace Umbraco.Core
|
||||
public static string TrimEnd(this string value, string forRemoving)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value)) return value;
|
||||
if (string.IsNullOrEmpty(forRemoving)) return value;
|
||||
|
||||
while (value.EndsWith(forRemoving, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
value = value.Remove(value.LastIndexOf(forRemoving, StringComparison.InvariantCultureIgnoreCase));
|
||||
@@ -198,6 +200,8 @@ namespace Umbraco.Core
|
||||
public static string TrimStart(this string value, string forRemoving)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value)) return value;
|
||||
if (string.IsNullOrEmpty(forRemoving)) return value;
|
||||
|
||||
while (value.StartsWith(forRemoving, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
value = value.Substring(forRemoving.Length);
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using NUnit.Framework;
|
||||
using SqlCE4Umbraco;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.DataLayer;
|
||||
@@ -22,6 +23,7 @@ namespace Umbraco.Tests.BusinessLogic
|
||||
{
|
||||
ClearDatabase();
|
||||
ConfigurationManager.AppSettings.Set(Core.Configuration.GlobalSettings.UmbracoConnectionName, "");
|
||||
ApplicationContext.Current.DisposeIfDisposable();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -30,6 +32,7 @@ namespace Umbraco.Tests.BusinessLogic
|
||||
[SetUp]
|
||||
public void Initialize()
|
||||
{
|
||||
ApplicationContext.Current = new ApplicationContext(){IsReady = true};
|
||||
InitializeDatabase();
|
||||
InitializeApps();
|
||||
InitializeAppConfigFile();
|
||||
|
||||
@@ -11,10 +11,10 @@ namespace Umbraco.Tests
|
||||
[TestFixture]
|
||||
public class GlobalSettingsTests : BaseWebTest
|
||||
{
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
||||
@@ -51,10 +51,10 @@ namespace Umbraco.Tests
|
||||
UmbracoContext.Current = null;
|
||||
}
|
||||
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Item_User_Property()
|
||||
|
||||
@@ -24,10 +24,10 @@ namespace Umbraco.Tests.PublishedContent
|
||||
|
||||
}
|
||||
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
|
||||
@@ -15,17 +15,12 @@ namespace Umbraco.Tests.PublishedContent
|
||||
[TestFixture]
|
||||
public class DynamicNodeTests : DynamicDocumentTestsBase<DynamicNode, DynamicNodeList>
|
||||
{
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// We only need a new schema per fixture... speeds up testing
|
||||
/// </summary>
|
||||
protected override DbInitBehavior DatabaseTestBehavior
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DbInitBehavior.NewSchemaPerFixture; }
|
||||
get { return DatabaseBehavior.NewSchemaPerFixture; }
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
|
||||
@@ -17,10 +17,10 @@ namespace Umbraco.Tests.PublishedContent
|
||||
[TestFixture]
|
||||
public class PublishedContentTests : PublishedContentTestBase
|
||||
{
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
|
||||
@@ -24,10 +24,10 @@ namespace Umbraco.Tests.PublishedContent
|
||||
base.TearDown();
|
||||
}
|
||||
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
|
||||
@@ -8,9 +8,9 @@ namespace Umbraco.Tests.Routing
|
||||
[TestFixture]
|
||||
public class ContentFinderByAliasTests : BaseRoutingTest
|
||||
{
|
||||
protected override bool RequiresDbSetup
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return false; }
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[TestCase("/this/is/my/alias", 1001)]
|
||||
|
||||
@@ -20,9 +20,9 @@ namespace Umbraco.Tests.Routing
|
||||
InitializeLanguagesAndDomains();
|
||||
}
|
||||
|
||||
protected override bool RequiresDbSetup
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return true; }
|
||||
get { return DatabaseBehavior.NewSchemaPerFixture; }
|
||||
}
|
||||
|
||||
void InitializeLanguagesAndDomains()
|
||||
|
||||
@@ -12,10 +12,10 @@ namespace Umbraco.Tests.Routing
|
||||
/// <summary>
|
||||
/// We don't need a db for this test, will run faster without one
|
||||
/// </summary>
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[TestCase("/1046", 1046)]
|
||||
[TestCase("/1046.aspx", 1046)]
|
||||
|
||||
@@ -13,10 +13,10 @@ namespace Umbraco.Tests.Routing
|
||||
/// <summary>
|
||||
/// We don't need a db for this test, will run faster without one
|
||||
/// </summary>
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[TestCase("/", 1046)]
|
||||
[TestCase("/default.aspx", 1046)] //this one is actually rather important since this is the path that comes through when we are running in pre-IIS 7 for the root document '/' !
|
||||
|
||||
@@ -13,10 +13,10 @@ namespace Umbraco.Tests.Routing
|
||||
/// <summary>
|
||||
/// We don't need a db for this test, will run faster without one
|
||||
/// </summary>
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[TestCase("/?umbPageId=1046", 1046)]
|
||||
[TestCase("/?UMBPAGEID=1046", 1046)]
|
||||
|
||||
@@ -18,6 +18,11 @@ namespace Umbraco.Tests.Routing
|
||||
[TestFixture]
|
||||
public class RenderRouteHandlerTests : BaseRoutingTest
|
||||
{
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NewSchemaPerFixture; }
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
@@ -12,10 +12,10 @@ namespace Umbraco.Tests.Surface
|
||||
[TestFixture]
|
||||
public class PluginControllerAreaTests : BaseWebTest
|
||||
{
|
||||
protected override bool RequiresDbSetup
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
protected override DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DatabaseBehavior.NoDatabasePerFixture; }
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Ensure_Same_Area1()
|
||||
|
||||
@@ -73,9 +73,9 @@ namespace Umbraco.Tests.TestHelpers
|
||||
/// <summary>
|
||||
/// The database behavior to use for the test/fixture
|
||||
/// </summary>
|
||||
protected virtual DbInitBehavior DatabaseTestBehavior
|
||||
protected virtual DatabaseBehavior DatabaseTestBehavior
|
||||
{
|
||||
get { return DbInitBehavior.NewSchemaPerTest; }
|
||||
get { return DatabaseBehavior.NewSchemaPerTest; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -83,6 +83,9 @@ namespace Umbraco.Tests.TestHelpers
|
||||
/// </summary>
|
||||
protected virtual void CreateDatabase()
|
||||
{
|
||||
if (DatabaseTestBehavior == DatabaseBehavior.NoDatabasePerFixture)
|
||||
return;
|
||||
|
||||
var path = TestHelper.CurrentAssemblyDirectory;
|
||||
|
||||
//Get the connectionstring settings from config
|
||||
@@ -99,8 +102,8 @@ namespace Umbraco.Tests.TestHelpers
|
||||
|
||||
//if this is the first test in the session, always ensure a new db file is created
|
||||
if (_isFirstRunInTestSession || !File.Exists(dbFilePath)
|
||||
|| DatabaseTestBehavior == DbInitBehavior.NewDbFileAndSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DbInitBehavior.NewDbFileAndSchemaPerFixture))
|
||||
|| DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerFixture))
|
||||
{
|
||||
|
||||
RemoveDatabaseFile(ex =>
|
||||
@@ -120,8 +123,8 @@ namespace Umbraco.Tests.TestHelpers
|
||||
// - NewSchemaPerTest
|
||||
// - _isFirstTestInFixture + DbInitBehavior.NewSchemaPerFixture
|
||||
|
||||
else if (DatabaseTestBehavior == DbInitBehavior.NewSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DbInitBehavior.NewSchemaPerFixture))
|
||||
else if (DatabaseTestBehavior == DatabaseBehavior.NewSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DatabaseBehavior.NewSchemaPerFixture))
|
||||
{
|
||||
DatabaseContext.Database.UninstallDatabaseSchema();
|
||||
}
|
||||
@@ -152,6 +155,9 @@ namespace Umbraco.Tests.TestHelpers
|
||||
/// </summary>
|
||||
protected virtual void InitializeDatabase()
|
||||
{
|
||||
if (DatabaseTestBehavior == DatabaseBehavior.NoDatabasePerFixture)
|
||||
return;
|
||||
|
||||
//create the schema and load default data if:
|
||||
// - is the first test in the session
|
||||
// - NewSchemaPerTest
|
||||
@@ -160,8 +166,8 @@ namespace Umbraco.Tests.TestHelpers
|
||||
// - _isFirstTestInFixture + DbInitBehavior.NewDbFileAndSchemaPerFixture
|
||||
|
||||
if (_isFirstRunInTestSession
|
||||
|| DatabaseTestBehavior == DbInitBehavior.NewSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DbInitBehavior.NewSchemaPerFixture))
|
||||
|| DatabaseTestBehavior == DatabaseBehavior.NewSchemaPerTest
|
||||
|| (_isFirstTestInFixture && DatabaseTestBehavior == DatabaseBehavior.NewSchemaPerFixture))
|
||||
{
|
||||
//Create the umbraco database and its base data
|
||||
DatabaseContext.Database.CreateDatabaseSchema(false);
|
||||
@@ -171,7 +177,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
[TestFixtureTearDown]
|
||||
public void FixtureTearDown()
|
||||
{
|
||||
if (DatabaseTestBehavior == DbInitBehavior.NewDbFileAndSchemaPerFixture)
|
||||
if (DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerFixture)
|
||||
{
|
||||
RemoveDatabaseFile();
|
||||
}
|
||||
@@ -182,15 +188,14 @@ namespace Umbraco.Tests.TestHelpers
|
||||
{
|
||||
_isFirstTestInFixture = false; //ensure this is false before anything!
|
||||
|
||||
if (DatabaseTestBehavior == DbInitBehavior.NewDbFileAndSchemaPerTest)
|
||||
if (DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerTest)
|
||||
{
|
||||
RemoveDatabaseFile();
|
||||
}
|
||||
else if (DatabaseTestBehavior == DbInitBehavior.NewSchemaPerTest)
|
||||
else if (DatabaseTestBehavior == DatabaseBehavior.NewSchemaPerTest)
|
||||
{
|
||||
DatabaseContext.Database.UninstallDatabaseSchema();
|
||||
//TestHelper.ClearDatabase();
|
||||
}
|
||||
}
|
||||
|
||||
AppDomain.CurrentDomain.SetData("DataDirectory", null);
|
||||
|
||||
|
||||
@@ -30,26 +30,12 @@ namespace Umbraco.Tests.TestHelpers
|
||||
base.Initialize();
|
||||
}
|
||||
|
||||
protected override void InitializeDatabase()
|
||||
{
|
||||
if (RequiresDbSetup)
|
||||
base.InitializeDatabase();
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public override void TearDown()
|
||||
{
|
||||
base.TearDown();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// By default this unit test will create and initialize an umbraco database
|
||||
/// </summary>
|
||||
protected virtual bool RequiresDbSetup
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
return @"<?xml version=""1.0"" encoding=""utf-8""?>
|
||||
|
||||
@@ -3,8 +3,13 @@
|
||||
/// <summary>
|
||||
/// The behavior used to control how the database is handled for test fixtures inheriting from BaseDatabaseFactoryTest
|
||||
/// </summary>
|
||||
public enum DbInitBehavior
|
||||
public enum DatabaseBehavior
|
||||
{
|
||||
/// <summary>
|
||||
/// A database is not required whatsoever for the fixture
|
||||
/// </summary>
|
||||
NoDatabasePerFixture,
|
||||
|
||||
/// <summary>
|
||||
/// For each test a new database file and schema will be created
|
||||
/// </summary>
|
||||
@@ -302,7 +302,7 @@
|
||||
<Compile Include="TestHelpers\BaseDatabaseFactoryTest.cs" />
|
||||
<Compile Include="TestHelpers\BaseRoutingTest.cs" />
|
||||
<Compile Include="TestHelpers\BaseUmbracoApplicationTest.cs" />
|
||||
<Compile Include="TestHelpers\DbInitBehavior.cs" />
|
||||
<Compile Include="TestHelpers\DatabaseBehavior.cs" />
|
||||
<Compile Include="TestHelpers\SettingsForTests.cs" />
|
||||
<Compile Include="GlobalSettingsTests.cs" />
|
||||
<Compile Include="Routing\ContentFinderByAliasTests.cs" />
|
||||
|
||||
Reference in New Issue
Block a user