diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/AdminControllerTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/AdminControllerTests.cs deleted file mode 100644 index 39e385b74..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/AdminControllerTests.cs +++ /dev/null @@ -1,494 +0,0 @@ -using System; -using System.Linq; -using System.Collections.Generic; -using System.Web; -using System.Web.Mvc; -using System.Web.Routing; -using NUnit.Framework; -using Orchard.CmsPages.Controllers; -using Orchard.CmsPages.Models; -using Orchard.CmsPages.Services; -using Orchard.CmsPages.Services.Templates; -using Orchard.CmsPages.ViewModels; -using Orchard.Data; -using Orchard.Security; -using Orchard.Security.Permissions; -using Orchard.Tests.Stubs; -using Orchard.UI.Notify; -using Orchard.Utility; - -namespace Orchard.CmsPages.Tests.Controllers { - [TestFixture] - public class AdminControllerTests : DatabaseEnabledTestsBase { - private AdminController _controller; - private IPageManager _pageManager; - private IPageScheduler _pageScheduler; - private IAuthorizationService _authorizationService; - private ITemplateProvider _templateProvider; - private int _slugPageId; - private IRepository _pagesRepository; - - [SetUp] - public override void Init() { - base.Init(); - - _pagesRepository = _container.Resolve>(); - //_pagesRepository.Create(new Page { Slug = "slug" }); - _pageManager = _container.Resolve(); - _pageScheduler = _container.Resolve(); - _templateProvider = _container.Resolve(); - _authorizationService = _container.Resolve(); - var page = _pageManager.CreatePage(new PageCreateViewModel { Slug = "slug", Templates = _templateProvider.List() }); - _slugPageId = page.Id; - - _controller = _container.Resolve(); - _controller.ControllerContext = new ControllerContext(new StubHttpContext("~/admin/cmspages"), new RouteData(), _controller); - } - - public override void Register(Autofac.Builder.ContainerBuilder builder) { - builder.Register(); - builder.Register().As(); - builder.Register().As(); - builder.Register().As(); - builder.Register(new StubTemplateProvider()).As(); - builder.Register(new StubAuthorizationService()).As(); - } - - protected override IEnumerable DatabaseTypes { - get { - return new[] { - typeof (Page), typeof (PageRevision), typeof (ContentItem), typeof (Published), - typeof (Scheduled) - }; - } - } - - class StubTemplateProvider : ITemplateProvider { - public IList List() { - return new List { - new TemplateDescriptor { Name = "twocolumn", Zones = new[] { "content1", "content2" } }, - new TemplateDescriptor { Name = "threecolumn", Zones = new[] { "content1", "content2", "content3" } } - }; - } - - public TemplateDescriptor Get(string name) { - if (name == "twocolumn") { - return List()[0]; - } - if (name == "threecolumn") { - return List()[1]; - } - return null; - } - } - - class StubAuthorizationService : IAuthorizationService { - #region Implementation of IAuthorizationService - - public bool CheckAccess(IUser user, Permission permission) { - return true; - } - - #endregion - } - - [Test] - public void CreateShouldReturnViewWithErrorIfSlugIsNull() { - var input = new FormCollection { { ReflectOn.NameOf(m => m.Slug), null } }; - var result = _controller.Create(input); - Assert.That(result, Is.TypeOf()); - Assert.That(_controller.ModelState.IsValid, Is.False); - } - - [Test] - public void CreateShouldReturnEmptyPageCreateViewModel() { - var result = _controller.Create(); - Assert.That(result, Is.Not.Null); - Assert.That(result, Is.TypeOf()); - - var model = ((ViewResult)result).ViewData.Model; - Assert.That(model, Is.TypeOf()); - - var pageModel = (PageCreateViewModel)model; - Assert.That(pageModel.TemplateName, Is.EqualTo("twocolumn")); - Assert.That(pageModel.Templates.Count(), Is.EqualTo(2)); - Assert.That(pageModel.Templates.First().Name, Is.EqualTo("twocolumn")); - Assert.That(pageModel.Templates.Skip(1).First().Name, Is.EqualTo("threecolumn")); - } - - [Test] - public void CreateShouldCreatePageWithSlugAndTemplateAndRedirectToEdit() { - - var pageDoesntExist = _pageManager.GetPublishedBySlug("slug2"); - - var input = new FormCollection { - { ReflectOn.NameOf(m => m.Slug), "slug2" }, - { ReflectOn.NameOf(m => m.TemplateName), "threecolumn" } - }; - - var result = _controller.Create(input); - - Assert.That(result, Is.TypeOf()); - var redirect = (RedirectToRouteResult)result; - Assert.That(redirect.RouteValues["action"], Is.EqualTo("Edit")); - - var pageId = Convert.ToInt32(redirect.RouteValues["id"]); - - var pageWasCreated = _pageManager.GetLastRevision(pageId); - var pageStillNotVisible = _pageManager.GetPublishedBySlug("slug2"); - - Assert.That(pageDoesntExist, Is.Null); - Assert.That(pageWasCreated, Is.Not.Null); - Assert.That(pageWasCreated.Slug, Is.EqualTo("slug2")); - Assert.That(pageWasCreated.TemplateName, Is.EqualTo("threecolumn")); - Assert.That(pageStillNotVisible, Is.Null); - } - - [Test] - public void IndexShouldReturnTheListOfFilteredPages() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - _pageManager.Publish(revision, new PublishOptions()); - - var createPage2 = new PageCreateViewModel { Title = "hello2", Slug = "world2", TemplateName = "twocolumn" }; - var revision2 = _pageManager.CreatePage(createPage2); - _pageScheduler.AddPublishTask(revision2, _clock.FutureMoment(TimeSpan.FromMinutes(1))); - - ClearSession(); - - Assert.That(_pagesRepository.Count(x => true), Is.EqualTo(3)); - - // No filter - { - var result = _controller.Index(new PageIndexOptions()); - var pages = (PageIndexViewModel)(((ViewResult)result).ViewData.Model); - Assert.That(pages.Options.Filter, Is.EqualTo(PageIndexFilter.All)); - Assert.That(pages.PageEntries.Count, Is.EqualTo(3)); - Assert.That( - pages.PageEntries.Single(p => p.IsPublished && p.Published.PageRevision.Id == revision.Id).Published. - PageRevision.Slug, Is.EqualTo("world")); - } - - // Published - { - var result = _controller.Index(new PageIndexOptions { Filter = PageIndexFilter.Published }); - - var pages = (PageIndexViewModel)(((ViewResult)result).ViewData.Model); - Assert.That(pages.Options.Filter, Is.EqualTo(PageIndexFilter.Published)); - Assert.That(pages.PageEntries.Count, Is.EqualTo(1)); - Assert.That(pages.PageEntries[0].Published.PageRevision.Slug, Is.EqualTo("world")); - } - - // Offline - { - var result = _controller.Index(new PageIndexOptions { Filter = PageIndexFilter.Offline }); - - var pages = (PageIndexViewModel)(((ViewResult)result).ViewData.Model); - Assert.That(pages.Options.Filter, Is.EqualTo(PageIndexFilter.Offline)); - Assert.That(pages.PageEntries.Count, Is.EqualTo(2)); - Assert.That(pages.PageEntries.OrderBy(page => page.Page.Id).First().Page.Revisions.Last().Slug, Is.EqualTo("slug")); - Assert.That(pages.PageEntries.OrderBy(page => page.Page.Id).Skip(1).First().Page.Revisions.Last().Slug, Is.EqualTo("world2")); - } - - // Scheduled - { - var result = _controller.Index(new PageIndexOptions { Filter = PageIndexFilter.Scheduled }); - - var pages = (PageIndexViewModel)(((ViewResult)result).ViewData.Model); - Assert.That(pages.Options.Filter, Is.EqualTo(PageIndexFilter.Scheduled)); - Assert.That(pages.PageEntries.Count, Is.EqualTo(1)); - Assert.That(pages.PageEntries[0].Page.Revisions.Last().Slug, Is.EqualTo("world2")); - } - } - - [Test] - public void IndexPostShouldPerformBulkPublishNow() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - - // Add a scheduled publish task to make sure it's deleted when bulk "PublishNow" is called - _pageScheduler.AddPublishTask(revision, _clock.FutureMoment(TimeSpan.FromMinutes(1))); - - // Check database state - ClearSession(); - var pages = _pagesRepository.Table.ToList(); - Assert.That(pages.Count, Is.EqualTo(2)); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Null); - Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1)); - - // Build controller input - var input = new FormCollection { { ReflectOn.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.PublishNow.ToString() } }; - for (int i = 0; i < 2; i++) { - //TODO: Use "NameOf" when it supports these expressions - input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString()); - input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString()); - } - - // Call controller - var result = _controller.Index(input); - - // Verify result, check database state - ClearSession(); - pages = _pagesRepository.Table.ToList(); - Assert.That(result, Is.InstanceOf()); - Assert.That(pages[0].Published, Is.Not.Null); - Assert.That(pages[1].Published, Is.Not.Null); - Assert.That(pages[0].Scheduled.Count, Is.EqualTo(0)); - Assert.That(pages[1].Scheduled.Count, Is.EqualTo(0)); - } - - [Test] - public void IndexPostShouldPerformBulkPublishLater() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - - // Add a scheduled publish task to make sure it's deleted when bulk "PublishNow" is called - _pageScheduler.AddPublishTask(revision, _clock.FutureMoment(TimeSpan.FromMinutes(1))); - - // Check database state - ClearSession(); - var pages = _pagesRepository.Table.ToList(); - Assert.That(pages.Count, Is.EqualTo(2)); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Null); - Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1)); - - // Build controller input - DateTime scheduledDate = _clock.FutureMoment(TimeSpan.FromMinutes(1)); - - var input = new FormCollection { - { ReflectOn.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.PublishLater.ToString() } , - { ReflectOn.NameOf(m => m.Options.BulkPublishLaterDate), string.Format("{0:d} {0:T}", scheduledDate) } - }; - for (int i = 0; i < 2; i++) { - //TODO: Use "NameOf" when it supports these expressions - input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString()); - input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString()); - } - - // Call controller - var result = _controller.Index(input); - - // Verify result, check database state - ClearSession(); - pages = _pagesRepository.Table.ToList(); - Assert.That(result, Is.InstanceOf()); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Null); - Assert.That(pages[0].Scheduled.Count, Is.EqualTo(1)); - Assert.That(pages[0].Scheduled[0].ScheduledDate, Is.EqualTo(scheduledDate)); - Assert.That(pages[1].Scheduled.Count, Is.EqualTo(1)); - Assert.That(pages[1].Scheduled[0].ScheduledDate, Is.EqualTo(scheduledDate)); - } - - [Test] - public void IndexPostShouldPerformBulkDelete() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - - // Add a scheduled publish task to make sure it's deleted when bulk "PublishNow" is called - _pageScheduler.AddPublishTask(revision, _clock.FutureMoment(TimeSpan.FromMinutes(1))); - - // Check database state - ClearSession(); - var pages = _pagesRepository.Table.ToList(); - Assert.That(pages.Count, Is.EqualTo(2)); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Null); - Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1)); - - // Build controller input - var input = new FormCollection { - { ReflectOn.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.Delete.ToString() }, - { ReflectOn.NameOf(m => m.Options.BulkDeleteConfirmed), true.ToString() } - }; - - for (int i = 0; i < 2; i++) { - //TODO: Use "NameOf" when it supports these expressions - input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString()); - input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString()); - } - - // Call controller - var result = _controller.Index(input); - - // Verify result, check database state - ClearSession(); - pages = _pagesRepository.Table.ToList(); - Assert.That(result, Is.InstanceOf()); - } - - [Test] - public void IndexPostShouldPerformBulkUnpublish() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - _pageManager.Publish(revision, new PublishOptions()); - - // Check database state - ClearSession(); - var pages = _pagesRepository.Table.ToList(); - Assert.That(pages.Count, Is.EqualTo(2)); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Not.Null); - - // Build controller input - var input = new FormCollection { - { ReflectOn.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.Unpublish.ToString() }, - }; - - for (int i = 0; i < 2; i++) { - //TODO: Use "NameOf" when it supports these expressions - input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString()); - input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString()); - } - - // Call controller - var result = _controller.Index(input); - - // Verify result, check database state - ClearSession(); - pages = _pagesRepository.Table.ToList(); - Assert.That(result, Is.InstanceOf()); - Assert.That(pages.Count, Is.EqualTo(2)); - Assert.That(pages[0].Published, Is.Null); - Assert.That(pages[1].Published, Is.Null); - } - - [Test] - [ExpectedException(typeof(HttpException))] - public void EditShouldThrow404IfSlugIsNotFound() { - _controller.Edit(6655321); - } - - [Test] - public void PublishNowShouldApplyChangesAndRedirect() { - var pageBeforeEdit = _pageManager.GetLastRevision(_slugPageId); - - var input = new FormCollection { - { ReflectOn.NameOf(m => m.Revision.Slug), "new-slug-value" }, - { ReflectOn.NameOf(m => m.Command), PageEditCommand.PublishNow.ToString() } - }; - var result = _controller.Edit(_slugPageId, input); - - var pageNotFoundAnymore = _pageManager.GetPublishedBySlug("slug"); - var pageFromNewSlug = _pageManager.GetPublishedBySlug("new-slug-value"); - - - Assert.That(result, Is.TypeOf()); - Assert.That(pageBeforeEdit, Is.Not.Null); - Assert.That(pageNotFoundAnymore, Is.Null); - Assert.That(pageFromNewSlug, Is.Not.Null); - Assert.That(pageBeforeEdit.Id, Is.EqualTo(pageFromNewSlug.Id)); - Assert.That(pageFromNewSlug.Slug, Is.EqualTo("new-slug-value")); - } - - [Test] - public void ChooseTemplateListsAvailableTemplatesWithCurrentOneSelected() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - var result = _controller.ChooseTemplate(revision.Id); - - var viewModel = (ChooseTemplateViewModel)((ViewResult)result).ViewData.Model; - Assert.That(viewModel.TemplateName, Is.EqualTo("twocolumn")); - Assert.That(viewModel.Templates, Has.Some.Property("Name").EqualTo("twocolumn")); - Assert.That(viewModel.Templates, Has.Some.Property("Name").EqualTo("threecolumn")); - } - - - [Test] - public void PostingDifferentTemplateResultsInDraftAndExtendsNamedContentItems() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - _pageManager.Publish(revision, new PublishOptions()); - - Assert.That(revision.Contents, Has.Count.EqualTo(2)); - Assert.That(revision.Contents, Has.None.Property("ZoneName").EqualTo("content3")); - - var input = new FormCollection { { "TemplateName", "threecolumn" } }; - var result = _controller.ChooseTemplate(revision.Id, input); - - Assert.That(result, Is.TypeOf()); - - _session.Flush(); - _session.Clear(); - - var published = _pageManager.GetPublishedBySlug("world"); - var draft = _pageManager.GetLastRevision(revision.Page.Id); - - // different revision for draft - Assert.That(draft.Page.Id, Is.EqualTo(published.Page.Id)); - Assert.That(draft.Id, Is.Not.EqualTo(published.Id)); - - // content item added - Assert.That(draft.Contents, Has.Count.EqualTo(3)); - Assert.That(draft.Contents, Has.Some.Property("ZoneName").EqualTo("content3")); - } - - [Test, Ignore("This can't be properly implementated until a transaction scope with rollback abilities is available to the controller")] - public void PostingSameTemplateDoesNotResultInDraftBeingCreated() { - var createPage = new PageCreateViewModel { Title = "hello", Slug = "world", TemplateName = "twocolumn" }; - var revision = _pageManager.CreatePage(createPage); - _pageManager.Publish(revision, new PublishOptions()); - - Assert.That(revision.Contents, Has.Count.EqualTo(2)); - Assert.That(revision.Contents, Has.None.Property("ZoneName").EqualTo("content3")); - - var input = new FormCollection { { "TemplateName", "twocolumn" } }; - var result = _controller.ChooseTemplate(revision.Id, input); - - Assert.That(result, Is.TypeOf()); - - _session.Flush(); - _session.Clear(); - - - var published = _pageManager.GetPublishedBySlug("world"); - var draft = _pageManager.GetLastRevision(revision.Page.Id); - Assert.That(draft.Id, Is.EqualTo(published.Id)); - - } - - [Test, Ignore("This actually requires the data binder to be registered, because it's going through contoller's update model method.")] - public void SavingDraftAfterEmptyingUnusedContentItemShouldRemoveUnusedItems() { - var createInput = new FormCollection { - {"Title", "One"}, - {"Slug", "Two"}, - {"TemplateName", "threecolumn"}, - }; - var createResult = (RedirectToRouteResult)_controller.Create(createInput); - ClearSession(); - var pageId = (int)createResult.RouteValues["id"]; - - var publishInput = new FormCollection { - {"Command", "PublishNow"}, - {"Revision.Contents[content1].Content", "alpha"}, - {"Revision.Contents[content2].Content", "beta"}, - {"Revision.Contents[content3].Content", "gamma"}, - }; - _controller.Edit(pageId, publishInput); - ClearSession(); - - var chooseTemplateInput = new FormCollection { - {"TemplateName", "twocolumn"}, - }; - _controller.ChooseTemplate(pageId, chooseTemplateInput); - ClearSession(); - - var revision = _pageManager.GetLastRevision(pageId); - Assert.That(revision.Contents, Has.Count.EqualTo(3)); - - - var publishInput2 = new FormCollection { - {"Command", "PublishNow"}, - {"Revision.Contents[content1].Content", "alpha"}, - {"Revision.Contents[content2].Content", "beta"}, - {"Revision.Contents[content3].Content", ""}, - }; - _controller.Edit(pageId, publishInput2); - ClearSession(); - var revision2 = _pageManager.GetLastRevision(pageId); - Assert.That(revision2.Contents, Has.Count.EqualTo(2)); - } - } -} diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/TemplatesControllerTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/TemplatesControllerTests.cs deleted file mode 100644 index 2acfa98c4..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Controllers/TemplatesControllerTests.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System.Collections.Generic; -using System.Web.Mvc; -using Autofac.Builder; -using NUnit.Framework; -using Orchard.CmsPages.Controllers; -using Orchard.CmsPages.Services; -using Orchard.CmsPages.Services.Templates; -using Orchard.CmsPages.Tests.Services.Templates; -using Orchard.CmsPages.ViewModels; -using Orchard.CmsPages.Models; -using System.Web; -using System; - -namespace Orchard.CmsPages.Tests.Controllers { - [TestFixture] - public class TemplatesControllerTests : DatabaseEnabledTestsBase { - private TemplatesController _controller; - private IPageManager _pageManager; - private ITemplateProvider _templateProvider; - - public override void Init() { - base.Init(); - - _pageManager = _container.Resolve(); - _templateProvider = _container.Resolve(); - _controller = _container.Resolve(); - - var revision = _pageManager.CreatePage(new PageCreateViewModel { Slug = "slug", Templates = _templateProvider.List() }); - _pageManager.Publish(revision, new PublishOptions()); - } - - public override void Register(ContainerBuilder builder) { - builder.Register(); - builder.Register().As(); - builder.Register().As(); - builder.Register().As(); - builder.Register(new StubTemplateEntryProvider()).As(); - } - - protected override IEnumerable DatabaseTypes { - get { - return new[] { - typeof (Page), typeof (PageRevision), typeof (ContentItem), typeof (Published), - typeof (Scheduled) - }; - } - } - - [Test] - [ExpectedException(typeof (HttpException))] - public void ShowShouldThrow404IfSlugIsNotFound() { - _controller.Show("notExisting"); - } - - [Test] - [ExpectedException(typeof (ArgumentNullException))] - public void ShowShouldThrowIfSlugIsNull() { - _controller.Show(null); - } - - [Test] - public void ShowShouldReturnAViewResult() { - Assert.That(_controller.Show("slug"), Is.Not.Null); - } - - [Test] - public void SlugShouldBeUsedToGetPageFromRepository() { - var result = _controller.Show("slug"); - var page = (PageRevision) (((ViewResult) result).ViewData.Model); - Assert.That(page.Slug, Is.EqualTo("slug")); - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/DatabaseEnabledTestsBase.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/DatabaseEnabledTestsBase.cs deleted file mode 100644 index c17c0c745..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/DatabaseEnabledTestsBase.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using Autofac; -using Autofac.Builder; -using NHibernate; -using NUnit.Framework; -using Orchard.CmsPages.Models; -using Orchard.Data; -using Orchard.Services; -using Orchard.Tests; -using Orchard.Tests.Data; -using Orchard.Tests.Stubs; - -namespace Orchard.CmsPages.Tests { - public abstract class DatabaseEnabledTestsBase { - - protected IContainer _container; - - protected ISession _session; - protected string _databaseFilePath; - protected ISessionFactory _sessionFactory; - protected StubClock _clock; - - - [TestFixtureSetUp] - public void InitFixture() { - _databaseFilePath = Path.GetTempFileName(); - } - - [TestFixtureTearDown] - public void TearDownFixture() { - File.Delete(_databaseFilePath); - } - - [SetUp] - public virtual void Init() { - _sessionFactory = DataUtility.CreateSessionFactory(_databaseFilePath, DatabaseTypes.ToArray()); - _session = _sessionFactory.OpenSession(); - _clock = new StubClock(); - - var builder = new ContainerBuilder(); - builder.Register(new StubLocator(_session)).As(); - builder.Register(_clock).As(); - builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)); - Register(builder); - _container = builder.Build(); - } - - [TearDown] - public void Cleanup() { - _session.Close(); - } - - public abstract void Register(ContainerBuilder builder); - - protected virtual IEnumerable DatabaseTypes { - get { - return new[] { - typeof (Page), typeof (PageRevision), typeof (ContentItem), typeof (Published), - typeof (Scheduled) - }; - } - } - - protected void ClearSession() { - _session.Flush(); - _session.Clear(); - } - } -} diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Orchard.CmsPages.Tests.csproj b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Orchard.CmsPages.Tests.csproj deleted file mode 100644 index 0c793ed69..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Orchard.CmsPages.Tests.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {0BF56F10-3023-4465-B273-026D22206355} - Library - Properties - Orchard.CmsPages.Tests - Orchard.CmsPages.Tests - v3.5 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\..\lib\autofac\Autofac.dll - - - False - ..\..\..\..\lib\fluentnhibernate\FluentNHibernate.dll - - - - - False - ..\..\..\..\lib\fluentnhibernate\NHibernate.dll - - - False - ..\..\..\..\lib\fluentnhibernate\NHibernate.ByteCode.Castle.dll - - - False - ..\..\..\..\lib\nunit\nunit.framework.dll - - - - 3.5 - - - - 3.5 - - - - False - ..\..\..\..\lib\sqlite\System.Data.SQLite.DLL - True - - - - - - - - - - - - - - - - - - - - - - - - {ABC826D4-2FA1-4F2F-87DE-E6095F653810} - Orchard.Tests - - - {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} - Orchard - - - {1ECC1131-0D0C-4822-AD90-E979868C63F3} - Orchard.CmsPages - - - - - \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Properties/AssemblyInfo.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 71d0cc9ba..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Orchard.CmsPages.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("MSIT")] -[assembly: AssemblyProduct("Orchard.CmsPages.Tests")] -[assembly: AssemblyCopyright("Copyright © MSIT 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. - -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM - -[assembly: Guid("d71aca85-7fcd-431f-898b-bfe2180599a5")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageManagerTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageManagerTests.cs deleted file mode 100644 index 8a6e4cfae..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageManagerTests.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using Autofac.Builder; -using NUnit.Framework; -using Orchard.CmsPages.Models; -using Orchard.CmsPages.Services; -using Orchard.CmsPages.Services.Templates; -using Orchard.CmsPages.ViewModels; -using Orchard.Data; - -namespace Orchard.CmsPages.Tests.Services { - [TestFixture] - public class PageManagerTests : DatabaseEnabledTestsBase { - private IPageManager _manager; - private ITemplateProvider _templateProvider; - - public override void Init() { - base.Init(); - - _manager = _container.Resolve(); - _templateProvider = _container.Resolve(); - } - - public override void Register(ContainerBuilder builder) { - builder.Register().As(); - builder.Register(new StubTemplateProvider()).As(); - } - - class StubTemplateProvider : ITemplateProvider { - public IList List() { - return new List { - new TemplateDescriptor { Name = "twocolumn", Zones = new[] { "content1", "content2" } } - }; - } - - public TemplateDescriptor Get(string name) { - if (name == "twocolumn") { - return List()[0]; - } - return null; - } - } - - - [Test] - public void CreatePageShouldAddInitialRecordsIncludingEmptyContentZonesFromTemplate() { - var page = _manager.CreatePage(PageCreate("foo", "The Foo Page", "twocolumn")); - - Assert.That(page.Slug, Is.EqualTo("foo")); - Assert.That(page.Title, Is.EqualTo("The Foo Page")); - Assert.That(page.TemplateName, Is.EqualTo("twocolumn")); - Assert.That(page.Contents, Has.Count.EqualTo(2)); - Assert.That(page.Contents, Has.Some.Property("ZoneName").EqualTo("content1")); - Assert.That(page.Contents, Has.Some.Property("ZoneName").EqualTo("content2")); - } - - private PageCreateViewModel PageCreate(string slug, string title, string template) { - return new PageCreateViewModel { Slug = slug, Title = title, TemplateName = template, Templates = _templateProvider.List() }; - } - - [Test] - public void CreatePageWithNullEmptyOrInvalidTemplateNameStillCreatesPage() { - var page1 = _manager.CreatePage(PageCreate("foo1", "The Foo1 Page", null)); - var page2 = _manager.CreatePage(PageCreate("foo2", "The Foo2 Page", string.Empty)); - var page3 = _manager.CreatePage(PageCreate("foo3", "The Foo3 Page", "NoSuchTemplate")); - - Assert.That(page1.Id, Is.Not.EqualTo(0)); - Assert.That(page2.Id, Is.Not.EqualTo(0)); - Assert.That(page3.Id, Is.Not.EqualTo(0)); - - //TODO: should a default named "content" always be assumed? - Assert.That(page1.Contents, Has.Count.EqualTo(0)); - Assert.That(page2.Contents, Has.Count.EqualTo(0)); - Assert.That(page3.Contents, Has.Count.EqualTo(0)); - } - - [Test] - public void ContentItemRecordsShouldFlushCorrectlyOnPageCreate() { - var page1 = _manager.CreatePage(PageCreate("foo", "The Foo Page", "twocolumn")); - _session.Clear(); - var page2 = _manager.GetLastRevision(page1.Id); - Assert.That(page2.Contents, Has.Count.EqualTo(2)); - } - - [Test] - public void GetPublishedBySlugShouldOnlyReturnPageAfterItIsPublished() { - var revision = _manager.CreatePage(new PageCreateViewModel { Slug = "hello-world", Templates = _templateProvider.List() }); - - var notPublishedYet = _manager.GetPublishedBySlug("hello-world"); - Assert.That(notPublishedYet, Is.Null); - - _manager.Publish(revision, new PublishOptions()); - - var publishedNow = _manager.GetPublishedBySlug("hello-world"); - Assert.That(publishedNow, Is.Not.Null); - } - - [Test] - [Ignore("Linq to NHib doesn't support calling 'String.Equals' in expressions. Figure out a workaround.")] - public void GetPublishedBySlugShouldBeCaseInsensitive() { - var revision = _manager.CreatePage(new PageCreateViewModel { Slug = "hello-world", Templates = _templateProvider.List() }); - _manager.Publish(revision, new PublishOptions()); - - var publishedNow = _manager.GetPublishedBySlug("hello-WORLD"); - Assert.That(publishedNow, Is.Not.Null); - } - - [Test] - public void PublishingPagesAddsToCurrentlyPublishedSlugList() { - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "one", Templates = _templateProvider.List() }), new PublishOptions()); - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "two", Templates = _templateProvider.List() }), new PublishOptions()); - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "three", Templates = _templateProvider.List() }), new PublishOptions()); - - var slugs = _manager.GetCurrentlyPublishedSlugs(); - Assert.That(slugs, Has.Count.GreaterThanOrEqualTo(3)); - Assert.That(slugs, Has.Some.EqualTo("one")); - Assert.That(slugs, Has.Some.EqualTo("two")); - Assert.That(slugs, Has.Some.EqualTo("three")); - } - - [Test] - public void PublishingPagesDoesNotChangeSlugCasing() { - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "One", Templates = _templateProvider.List() }), new PublishOptions()); - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "TWO", Templates = _templateProvider.List() }), new PublishOptions()); - _manager.Publish(_manager.CreatePage(new PageCreateViewModel { Slug = "thRee", Templates = _templateProvider.List() }), new PublishOptions()); - - var slugs = _manager.GetCurrentlyPublishedSlugs(); - Assert.That(slugs, Has.Count.GreaterThanOrEqualTo(3)); - Assert.That(slugs, Has.Some.EqualTo("One")); - Assert.That(slugs, Has.Some.EqualTo("TWO")); - Assert.That(slugs, Has.Some.EqualTo("thRee")); - } - - [Test] - public void PublishingThePublishedRevisionDoesNothing() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - _manager.Publish(initial, new PublishOptions()); - - DateTime initialRevisionTime = initial.PublishedDate.Value; - - _clock.Advance(TimeSpan.FromSeconds(1)); - - _manager.Publish(initial, new PublishOptions()); - - Assert.That(initial.Page.Revisions.Count, Is.EqualTo(1)); - Assert.That(initial.Page.Revisions[0], Is.SameAs(initial)); - Assert.That(initial.Number, Is.EqualTo(1)); - Assert.That(initial.PublishedDate, Is.EqualTo(initialRevisionTime)); - } - - [Test] - public void AcquireDraftOnUnpublishedPageShouldReturnExistingRevision() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - var draft = _manager.AcquireDraft(initial.Page.Id); - Assert.That(initial, Is.SameAs(draft)); - } - - [Test] - public void AcquireDraftForUpdateOnPublishedPageShouldCreateNewRevision() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - _manager.Publish(initial, new PublishOptions()); - var draft = _manager.AcquireDraft(initial.Page.Id); - Assert.That(initial, Is.Not.SameAs(draft)); - Assert.That(initial.Number, Is.LessThan(draft.Number)); - } - - [Test] - public void PublishingDraftWithKeepHistoryFalseShouldDeletePreviousPublishedRevision() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - var pageId = initial.Page.Id; - - _manager.Publish(initial, new PublishOptions()); - var draft = _manager.AcquireDraft(pageId); - _manager.Publish(draft, new PublishOptions { History = PublishHistory.Discard }); - - _session.Flush(); - _session.Clear(); - - var lastRevision = _manager.GetLastRevision(pageId); - - - Assert.That(lastRevision.Id, Is.EqualTo(draft.Id)); - Assert.That(lastRevision.Page.Revisions, Has.Count.EqualTo(1)); - } - - [Test] - public void PublishingDraftWithKeepHistoryTrueShouldLeavePreviousRevisionIntact() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - var pageId = initial.Page.Id; - - Trace.WriteLine("Publish initial"); - _manager.Publish(initial, new PublishOptions()); - Trace.WriteLine("AcquireDraft"); - var draft = _manager.AcquireDraft(pageId); - Trace.WriteLine("Publish draft"); - _manager.Publish(draft, new PublishOptions { History = PublishHistory.Preserve }); - - _session.Flush(); - _session.Clear(); - - Trace.WriteLine("GetLastRevision"); - var lastRevision = _manager.GetLastRevision(pageId); - - Assert.That(lastRevision.Id, Is.EqualTo(draft.Id)); - Assert.That(lastRevision.Page.Revisions, Has.Count.EqualTo(2)); - } - - [Test] - public void PublishDateIsSetWhenPublishOccurs() { - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - Assert.That(initial.PublishedDate, Is.Null); - _manager.Publish(initial, new PublishOptions()); - Assert.That(initial.PublishedDate, Is.EqualTo(_clock.UtcNow)); - } - - [Test] - public void ModifiedDateIsSetWhenPageIsCreatedAndWhenAcquireDraftIsCalled() { - var mark1 = _clock.UtcNow; - - var initial = _manager.CreatePage(new PageCreateViewModel { Slug = "foo", Templates = _templateProvider.List() }); - Assert.That(initial.PublishedDate, Is.Null); - Assert.That(initial.ModifiedDate, Is.EqualTo(mark1)); - - _clock.Advance(TimeSpan.FromMinutes(5)); - var mark2 = _clock.UtcNow; - - _manager.Publish(initial, new PublishOptions()); - Assert.That(initial.PublishedDate, Is.EqualTo(mark2)); - Assert.That(initial.ModifiedDate, Is.EqualTo(mark1)); - - _clock.Advance(TimeSpan.FromMinutes(5)); - var mark3 = _clock.UtcNow; - - var draft = _manager.AcquireDraft(initial.Page.Id); - Assert.That(draft.Id, Is.Not.EqualTo(initial.Id)); - Assert.That(draft.PublishedDate, Is.Null); - Assert.That(draft.ModifiedDate, Is.EqualTo(mark3)); - - Assert.That(mark1, Is.LessThan(mark2)); - Assert.That(mark2, Is.LessThan(mark3)); - - // verify changes flushed as expected - _session.Flush(); - _session.Clear(); - - var reloaded = _manager.GetLastRevision(initial.Page.Id); - - Assert.That(reloaded.PublishedDate, Is.Null); - Assert.That(reloaded.ModifiedDate, Is.EqualTo(mark3)); - - Assert.That(reloaded.Page.Revisions, Has.Count.EqualTo(2)); - - Assert.That(reloaded.Page.Revisions.First().PublishedDate, Is.EqualTo(mark2)); - Assert.That(reloaded.Page.Revisions.First().ModifiedDate, Is.EqualTo(mark1)); - } - - [Test] - public void PublishedPropertyShouldCascadeInsertsAndDeletesWhenSetAndNulled() { - var page = new Page {Published = new Published()}; - page.Published.Page = page; - - var pageRepos = _container.Resolve>(); - pageRepos.Create(page); - - ClearSession(); - - var page2 = pageRepos.Get(page.Id); - - Assert.That(page2.Published, Is.Not.Null); - - _container.Resolve>().Delete(page2.Published); - page2.Published = null; - - ClearSession(); - - var page3 = pageRepos.Get(page.Id); - Assert.That(page3.Published, Is.Null); - } - - // more tests: - // publish new revision on same slug - // publish on slug already published on different page - } -} - diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageSchedulerTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageSchedulerTests.cs deleted file mode 100644 index 94bdef042..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/PageSchedulerTests.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; -using Orchard.CmsPages.Models; -using Orchard.CmsPages.Services; -using Orchard.CmsPages.Services.Templates; -using Orchard.Data; - -namespace Orchard.CmsPages.Tests.Services { - [TestFixture] - public class PageSchedulerTests : DatabaseEnabledTestsBase { - private IPageScheduler _scheduler; - private IPageManager _manager; - - - public override void Init() { - base.Init(); - _manager = _container.Resolve(); - _scheduler = _container.Resolve(); - } - - public override void Register(Autofac.Builder.ContainerBuilder builder) { - builder.Register().As(); - builder.Register().As(); - builder.Register(new StubTemplateProvider()).As(); - } - - private class StubTemplateProvider : ITemplateProvider { - public IList List() { - return Enumerable.Empty().ToList(); - } - - public TemplateDescriptor Get(string name) { - return null; - } - } - - [Test] - public void SchedulerWillStoreScheduledTasksThatCanBeListedFromTheRevisionAndPage() { - var published = _manager.CreateAndPublishPage("hello", "Hello World"); - var draft = _manager.AcquireDraft(published.Page.Id); - var futureMoment1 = _clock.FutureMoment(TimeSpan.FromMinutes(5)); - var futureMoment2 = _clock.FutureMoment(TimeSpan.FromMinutes(6)); - _scheduler.AddPublishTask(draft, futureMoment1); - _scheduler.AddPublishTask(published, futureMoment2); - _session.Flush(); - _session.Clear(); - - var draft2 = _manager.GetLastRevision(published.Page.Id); - var published2 = _manager.GetPublishedBySlug("hello"); - - //each has one scheduled task - Assert.That(draft2.Scheduled, Has.Count.EqualTo(1)); - Assert.That(published2.Scheduled, Has.Count.EqualTo(1)); - - // both have same page, which has two publish tasks - Assert.That(draft2.Page, Is.SameAs(published2.Page)); - Assert.That(draft2.Page.Scheduled, Has.Count.EqualTo(2)); - Assert.That(published2.Page.Scheduled, Has.Count.EqualTo(2)); - Assert.That(published2.Page.Scheduled, Has.All.Property("Action").EqualTo(ScheduledAction.Publish)); - - // time of each task is correct - Assert.That(draft2.Scheduled.Single().ScheduledDate, Is.EqualTo(futureMoment1)); - Assert.That(published2.Scheduled.Single().ScheduledDate, Is.EqualTo(futureMoment2)); - } - - [Test] - public void SweepShouldPublishAndRemoveTaskRecordsWhenTheApproprioateTimeHasPassed() { - - var published = _manager.CreateAndPublishPage("hello", "Hello World"); - var draft = _manager.AcquireDraft(published.Page.Id); - var moment = _clock.FutureMoment(TimeSpan.FromMinutes(5)); - - Assert.That(draft.Id, Is.Not.EqualTo(published.Id)); - - _scheduler.AddPublishTask(draft, moment); - - _session.Flush(); - _scheduler.Sweep(); - - Assert.That(draft.Scheduled, Has.Count.EqualTo(1)); - Assert.That(_manager.GetPublishedBySlug("hello"), Has.Property("Id").EqualTo(published.Id)); - - _clock.Advance(TimeSpan.FromMinutes(6)); - _session.Flush(); - _scheduler.Sweep(); - - Assert.That(draft.Scheduled, Has.Count.EqualTo(0)); - Assert.That(_manager.GetPublishedBySlug("hello"), Has.Property("Id").EqualTo(draft.Id)); - } - - [Test] - public void SchedulerShouldRemoveTasksIfTheyFail() { - _scheduler.AddPublishTask( - _manager.CreateAndPublishPage("hello", "Hello World"), - _clock.FutureMoment(TimeSpan.FromMinutes(5))); - - // undefined action should throw an exception - _session.Flush(); - _container.Resolve>().Table.Single().Action = ScheduledAction.Undefined; - - _scheduler.Sweep(); - - _session.Flush(); - Assert.That(_container.Resolve>().Count(x => true), Is.EqualTo(1)); - - _clock.Advance(TimeSpan.FromMinutes(6)); - _scheduler.Sweep(); - - _session.Flush(); - Assert.That(_container.Resolve>().Count(x => true), Is.EqualTo(0)); - } - - } -} diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/CommentExtractorTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/CommentExtractorTests.cs deleted file mode 100644 index 892dcb183..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/CommentExtractorTests.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using NUnit.Framework; -using Orchard.CmsPages.Services.Templates; - -namespace Orchard.CmsPages.Tests.Services.Templates { - [TestFixture] - public class CommentExtractorTests { - [Test] - public void ExtractorShouldReturnEmptyWhenNoComment() { - var reader = new StringReader(" \r\n "); - var extractor = new CommentExtractor(); - IList result = extractor.Process(reader); - - Assert.That(result.Count, Is.EqualTo(0)); - } - - [Test] - public void ExtractorShouldReturnOneComment() { - var reader = new StringReader("<%@Page %><%--n--%>"); - - var extractor = new CommentExtractor(); - IList result = extractor.Process(reader); - - Assert.That(result.Count, Is.EqualTo(1)); - Assert.That(result[0], Is.EqualTo("n")); - } - - [Test] - public void ExtractorShouldReturnManyComment() { - var reader = new StringReader(@" -<%@Page %> -<%-- n1 --%> -

-<%-- n2 --%> -text -<%-- n3 --%> -<%-- - n4 ---%> -"); - - var extractor = new CommentExtractor(); - IList result = extractor.Process(reader); - - Assert.That(result.Count, Is.EqualTo(4)); - Assert.That(result[0], Is.EqualTo(" n1 ")); - Assert.That(result[1], Is.EqualTo(" n2 ")); - Assert.That(result[2], Is.EqualTo(" n3 ")); - Assert.That(result[3], Is.EqualTo("\r\n n4 \r\n")); - } - - [Test] - public void ExtractorShouldReturnFirstComment() { - var reader = new StringReader(@" -<%@Page %> -<%-- n1 --%> -

-<%-- n2 --%> -text -<%-- n3 --%> -<%-- n4 --%> -"); - - var extractor = new CommentExtractor(); - string result = extractor.FirstComment(reader).ReadToEnd(); - - Assert.That(result, Is.EqualTo(" n1 ")); - } - - [Test] - public void ExtractorShouldReturnEmptyFirstComment() { - var reader = new StringReader(@" -<%@Page %> -<%-- n1 -"); - - var extractor = new CommentExtractor(); - string result = extractor.FirstComment(reader).ReadToEnd(); - - Assert.That(result, Is.EqualTo("")); - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateMetadataParserTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateMetadataParserTests.cs deleted file mode 100644 index 6b8bed18b..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateMetadataParserTests.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using NUnit.Framework; -using Orchard.CmsPages.Services.Templates; - -namespace Orchard.CmsPages.Tests.Services.Templates { - [TestFixture] - public class TemplateMetadataParserTests { - [Test] - public void ParserShouldReturnEmptyListForEmptyMetadata() { - var reader = new StringReader(" \r\n "); - var parser = new TemplateMetadataParser(); - IList result = parser.Parse(reader); - - Assert.That(result.Count, Is.EqualTo(0)); - } - - [Test] - public void ParserShouldIgnoreEmptyTags() { - var reader = new StringReader(" : test value \r\n "); - var parser = new TemplateMetadataParser(); - IList result = parser.Parse(reader); - - Assert.That(result.Count, Is.EqualTo(0)); - } - - [Test] - public void ParserShouldReturnMetadata() { - var reader = new StringReader("Description: test"); - var parser = new TemplateMetadataParser(); - IList result = parser.Parse(reader); - - Assert.That(result.Count, Is.EqualTo(1)); - Assert.That(result[0].Tag, Is.EqualTo("Description")); - Assert.That(result[0].Value, Is.EqualTo("test")); - } - - [Test] - public void ParserShouldReturnMultiMetadata() { - var reader = new StringReader("Description: test\r\nTag2: this is my test "); - var parser = new TemplateMetadataParser(); - IList result = parser.Parse(reader); - - Assert.That(result.Count, Is.EqualTo(2)); - Assert.That(result[0].Tag, Is.EqualTo("Description")); - Assert.That(result[0].Value, Is.EqualTo("test")); - Assert.That(result[1].Tag, Is.EqualTo("Tag2")); - Assert.That(result[1].Value, Is.EqualTo("this is my test")); - } - - [Test] - public void ParserShouldSupportMultiLineValues() { - var reader = new StringReader("Description: test Tag2 this\r\n is my test\r\nName:\r\n FooBar"); - var parser = new TemplateMetadataParser(); - IList result = parser.Parse(reader); - - Assert.That(result.Count, Is.EqualTo(2)); - Assert.That(result[0].Tag, Is.EqualTo("Description")); - Assert.That(result[0].Value, Is.EqualTo("test Tag2 this is my test")); - Assert.That(result[1].Tag, Is.EqualTo("Name")); - Assert.That(result[1].Value, Is.EqualTo("FooBar")); - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateProviderTests.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateProviderTests.cs deleted file mode 100644 index 3b3650ceb..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TemplateProviderTests.cs +++ /dev/null @@ -1,54 +0,0 @@ -using NUnit.Framework; -using Orchard.CmsPages.Services.Templates; - -namespace Orchard.CmsPages.Tests.Services.Templates { - [TestFixture] - public class TemplateProviderTests { - private StubTemplateEntryProvider _entryProvider; - private ITemplateProvider _provider; - - [SetUp] - public void Init() { - _entryProvider = new StubTemplateEntryProvider(); - _provider = new TemplateProvider(_entryProvider, new TemplateMetadataParser()); - _entryProvider.AddTemplate("test1", @" -<%@Page %> -<%-- -name: Two column layout -description: This has a main content area and a sidebar on the right. -zones: Content, Right sidebar -author: Jon -OtherTag1: OtherValue1 -OtherTag2: OtherValue2 ---%> -"); - } - - [Test] - public void ProviderShouldReturnTemplates() { - var templateDescriptors = _provider.List(); - Assert.That(templateDescriptors.Count, Is.EqualTo(1)); - Assert.That(templateDescriptors[0].Name, Is.EqualTo("test1")); - Assert.That(templateDescriptors[0].DisplayName, Is.EqualTo("Two column layout")); - Assert.That(templateDescriptors[0].Description, Is.EqualTo("This has a main content area and a sidebar on the right.")); - Assert.That(templateDescriptors[0].Zones.Count, Is.EqualTo(2)); - Assert.That(templateDescriptors[0].Zones[0], Is.EqualTo("Content")); - Assert.That(templateDescriptors[0].Zones[1], Is.EqualTo("Right sidebar")); - Assert.That(templateDescriptors[0].Author, Is.EqualTo("Jon")); - Assert.That(templateDescriptors[0].Others.Count, Is.EqualTo(2)); - Assert.That(templateDescriptors[0].Others[0].Tag, Is.EqualTo("OtherTag1")); - Assert.That(templateDescriptors[0].Others[0].Value, Is.EqualTo("OtherValue1")); - Assert.That(templateDescriptors[0].Others[1].Tag, Is.EqualTo("OtherTag2")); - Assert.That(templateDescriptors[0].Others[1].Value, Is.EqualTo("OtherValue2")); - } - - [Test] - public void GetShouldLocateTemplateDescriptorByNameOrReturnNull() { - var test1= _provider.Get("test1"); - var test2 = _provider.Get("test2"); - - Assert.That(test1, Is.Not.Null); - Assert.That(test2, Is.Null); - } - } -} diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TestTemplateProvider.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TestTemplateProvider.cs deleted file mode 100644 index 719192e82..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/Templates/TestTemplateProvider.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using Orchard.CmsPages.Services.Templates; - -namespace Orchard.CmsPages.Tests.Services.Templates { - public class StubTemplateEntryProvider : ITemplateEntryProvider { - private readonly List _templates = new List(); - - public IEnumerable List() { - return _templates; - } - - public void AddTemplate(string fileName, string fileContent) { - _templates.Add(new TemplateEntry { Name = fileName, Content = new StringReader(fileContent) }); - } - } -} diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/TestExtensions.cs b/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/TestExtensions.cs deleted file mode 100644 index 0e1b97477..000000000 --- a/src/Orchard.Web/Packages/Orchard.CmsPages.Tests/Services/TestExtensions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Orchard.CmsPages.Models; -using Orchard.CmsPages.Services; -using Orchard.CmsPages.ViewModels; - -namespace Orchard.CmsPages.Tests.Services { - public static class TestExtensions { - public static PageRevision CreateAndPublishPage(this IPageManager manager, string slug, string title) { - var revision = manager.CreatePage(new PageCreateViewModel {Slug = slug, Title = title}); - manager.Publish(revision, new PublishOptions()); - return revision; - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Media.Tests/Orchard.Media.Tests.csproj b/src/Orchard.Web/Packages/Orchard.Media.Tests/Orchard.Media.Tests.csproj deleted file mode 100644 index 436f54985..000000000 --- a/src/Orchard.Web/Packages/Orchard.Media.Tests/Orchard.Media.Tests.csproj +++ /dev/null @@ -1,123 +0,0 @@ - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {15CFEF40-F2C2-44DD-ADAF-18A26DA2320C} - {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - Orchard.Media.Tests - Orchard.Media.Tests - v3.5 - false - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - False - ..\..\..\..\lib\nunit\nunit.framework.dll - - - - - 3.5 - - - 3.5 - - - 3.5 - - - False - ..\..\..\..\lib\aspnetmvc\System.Web.Mvc.dll - - - 3.5 - - - - - - - - - - - - - - - - - - {D9A7B330-CD22-4DA1-A95A-8DE1982AD8EB} - Orchard.Media - - - - - - - - - - - - $(ProjectDir)\..\Manifests - - - - - - - - - - - - False - True - 65263 - / - - - False - False - - - False - - - - - \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Media.Tests/Properties/AssemblyInfo.cs b/src/Orchard.Web/Packages/Orchard.Media.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 65e6e9e88..000000000 --- a/src/Orchard.Web/Packages/Orchard.Media.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Orchard.Media.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("MSIT")] -[assembly: AssemblyProduct("Orchard.Media.Tests")] -[assembly: AssemblyCopyright("Copyright © MSIT 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7ef60d7c-3475-4946-b023-7c36bbec022a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Controllers/HomeControllerTests.cs b/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Controllers/HomeControllerTests.cs deleted file mode 100644 index 50dd3cd79..000000000 --- a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Controllers/HomeControllerTests.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; -using Autofac.Builder; -using Autofac.Modules; -using NUnit.Framework; -using Orchard.XmlRpc.Controllers; -using Orchard.XmlRpc.Models; -using Orchard.XmlRpc.Services; - -namespace Orchard.XmlRpc.Tests.Controllers { - - [TestFixture] - public class HomeControllerTests { - [Test] - public void RequestShouldBeDispatchedToAllHandlers() { - var thing1 = new StubHandler(); - var thing2 = new StubHandler(); - - var builder = new ContainerBuilder(); - builder.RegisterModule(new ImplicitCollectionSupportModule()); ; - builder.Register(); - builder.Register().As>(); - builder.Register().As>(); - builder.Register(thing1).As(); - builder.Register(thing2).As(); - - var container = builder.Build(); - - var controller = container.Resolve(); - - Assert.That(thing1.ProcessCalls, Is.EqualTo(0)); - Assert.That(thing2.ProcessCalls, Is.EqualTo(0)); - - var result = controller.ServiceEndpoint(new XRpcMethodCall()); - Assert.That(result, Is.Not.Null); - Assert.That(thing1.ProcessCalls, Is.EqualTo(1)); - Assert.That(thing2.ProcessCalls, Is.EqualTo(1)); - - } - - public class StubHandler : IXmlRpcHandler { - public void Process(XmlRpcContext context) { - ProcessCalls++; - context.Response = new XRpcMethodResponse(); - } - - public int ProcessCalls { get; set; } - } - } -} diff --git a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Orchard.XmlRpc.Tests.csproj b/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Orchard.XmlRpc.Tests.csproj deleted file mode 100644 index e1146d255..000000000 --- a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Orchard.XmlRpc.Tests.csproj +++ /dev/null @@ -1,83 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {58506223-CB7D-474F-B936-6E17D53B0FB8} - Library - Properties - Orchard.XmlRpc.Tests - Orchard.XmlRpc.Tests - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\..\lib\autofac\Autofac.dll - - - False - ..\..\..\..\lib\nunit\nunit.framework.dll - - - - 3.5 - - - False - ..\..\..\..\lib\aspnetmvc\System.Web.Mvc.dll - - - 3.5 - - - 3.5 - - - - - - - - - - - - - {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} - Orchard - - - {0DC6B598-6D03-4923-A6C2-274D09854117} - Orchard.XmlRpc - - - - - \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Properties/AssemblyInfo.cs b/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 34fdf967a..000000000 --- a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Orchard.XmlRpc.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("Orchard.XmlRpc.Tests")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("cc654e9f-02d6-4e51-b941-04a5715ea4bd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcReaderTests.cs b/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcReaderTests.cs deleted file mode 100644 index 7f4cf7ee2..000000000 --- a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcReaderTests.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Xml.Linq; -using NUnit.Framework; -using Orchard.XmlRpc.Models; -using Orchard.XmlRpc.Services; - -namespace Orchard.XmlRpc.Tests.Services { - [TestFixture] - public class XmlRpcReaderTests { - private IMapper _methodCallMapper; - private IMapper _structMapper; - private IMapper _arrayMapper; - - [SetUp] - public void Init() { - var mapper = new XmlRpcReader(); - _methodCallMapper = mapper; - _structMapper = mapper; - _arrayMapper = mapper; - } - - [Test] - public void MethodCallShouldMapName() { - var source = XElement.Parse(@" - - hello world -"); - - var methodCall = _methodCallMapper.Map(source); - Assert.That(methodCall, Is.Not.Null); - Assert.That(methodCall.MethodName, Is.EqualTo("hello world")); - } - - [Test] - public void CallWithParametersShouldMapValuesAccordingToSpec() { - var source = XElement.Parse(@" - - hello world - - -12 - 42 - 1 - 0 - hello world - -12.214 - 1998-07-17T14:08:55 - eW91IGNhbid0IHJlYWQgdGhpcyE= - -"); - - var methodCall = _methodCallMapper.Map(source); - Assert.That(methodCall, Is.Not.Null); - Assert.That(methodCall.Params, Has.Count.EqualTo(8)); - Assert.That(methodCall.Params[0].Value, Is.EqualTo(-12)); - Assert.That(methodCall.Params[1].Value, Is.EqualTo(42)); - Assert.That(methodCall.Params[2].Value, Is.EqualTo(true)); - Assert.That(methodCall.Params[3].Value, Is.EqualTo(false)); - Assert.That(methodCall.Params[4].Value, Is.EqualTo("hello world")); - Assert.That(methodCall.Params[5].Value, Is.EqualTo(-12.214)); - Assert.That(methodCall.Params[6].Value, Is.EqualTo(new DateTime(1998,7,17,14,8,55))); - Assert.That(methodCall.Params[7].Value, Is.EqualTo(Convert.FromBase64String("eW91IGNhbid0IHJlYWQgdGhpcyE="))); - } - - [Test] - public void StructShouldMapAllMembersByNameWithCorrectType() { - var source = XElement.Parse(@" - - one-12 - two42 - three1 - four0 - fivehello world - six-12.214 - seven1998-07-17T14:08:55 - eighteW91IGNhbid0IHJlYWQgdGhpcyE= -"); - - var xmlStruct = _structMapper.Map(source); - Assert.That(xmlStruct["one"], Is.EqualTo(-12)); - Assert.That(xmlStruct["two"], Is.EqualTo(42)); - Assert.That(xmlStruct["three"], Is.EqualTo(true)); - Assert.That(xmlStruct["four"], Is.EqualTo(false)); - Assert.That(xmlStruct["five"], Is.EqualTo("hello world")); - Assert.That(xmlStruct["six"], Is.EqualTo(-12.214)); - Assert.That(xmlStruct["seven"], Is.EqualTo(new DateTime(1998, 7, 17, 14, 8, 55))); - Assert.That(xmlStruct["eight"], Is.EqualTo(Convert.FromBase64String("eW91IGNhbid0IHJlYWQgdGhpcyE="))); - - } - - [Test] - public void ArrayShouldBringDataItemsWithCorrectType() { - var source = XElement.Parse(@" - - - 12 - Egypt - 0 - -31 - - -"); - - var xmlArray = _arrayMapper.Map(source); - Assert.That(xmlArray.Data, Has.Count.EqualTo(4)); - Assert.That(xmlArray[0], Is.EqualTo(12)); - Assert.That(xmlArray[1], Is.EqualTo("Egypt")); - Assert.That(xmlArray[2], Is.EqualTo(false)); - Assert.That(xmlArray[3], Is.EqualTo(-31)); - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcWriterTests.cs b/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcWriterTests.cs deleted file mode 100644 index 7be5a8ccd..000000000 --- a/src/Orchard.Web/Packages/Orchard.XmlRpc.Tests/Services/XmlRpcWriterTests.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System.Xml.Linq; -using NUnit.Framework; -using Orchard.XmlRpc.Models; -using Orchard.XmlRpc.Services; - -namespace Orchard.XmlRpc.Tests.Services { - [TestFixture] - public class XmlRpcWriterTests { - [Test] - public void MethodResponseWriterShouldSendParametersWithValues() { - var mapper = new XmlRpcWriter(); - IMapper resposeMapper = mapper; - - var response = new XRpcMethodResponse(); - response.Params.Add(new XRpcData { Value = 42 }); - var element = resposeMapper.Map(response); - - Assert.That(NoSpace(element.ToString()), Is.EqualTo("42")); - } - - [Test] - public void ArrayAndStructShouldWorkAsExpected() { - var mapper = new XmlRpcWriter(); - IMapper arrayMapper = mapper; - - var arr = new XRpcArray(); - var structParam = XRpcData.For(new XRpcStruct()); - - arr.Data.Add(structParam); - arr.Data.Add(XRpcData.For(19)); - - structParam.Value.Members.Add("Hello", XRpcData.For("world")); - - var element = arrayMapper.Map(arr); - - Assert.That(NoSpace(element.ToString()), Is.EqualTo(NoSpace(@" - - -Helloworld - -19 - -"))); - } - - private static string NoSpace(string text) { - return text.Replace(" ", "").Replace("\r", "").Replace("\n", "").Replace("\t", ""); - } - } -} \ No newline at end of file