Example #1
0
        public void EditingShouldSetModifiedUtc()
        {
            var contentManager = _container.Resolve <IContentManager>();

            var createUtc = _clock.UtcNow;
            var item      = contentManager.Create <ICommonPart>("test-item", VersionOptions.Draft, init => { });

            contentManager.Publish(item.ContentItem);

            Assert.That(item.CreatedUtc, Is.EqualTo(createUtc));
            Assert.That(item.ModifiedUtc, Is.EqualTo(createUtc));
            Assert.That(item.PublishedUtc, Is.EqualTo(createUtc));

            _clock.Advance(TimeSpan.FromMinutes(1));
            var editUtc = _clock.UtcNow;

            var updater = new UpdatModelStub()
            {
                Owner = ""
            };

            contentManager.UpdateEditor(item.ContentItem, updater);

            Assert.That(item.CreatedUtc, Is.EqualTo(createUtc));
            Assert.That(item.ModifiedUtc, Is.EqualTo(editUtc));
            Assert.That(item.PublishedUtc, Is.EqualTo(createUtc));
            Assert.That(updater.ModelErrors.Count, Is.EqualTo(0));
        }
Example #2
0
        public void PublishingShouldNotFailIfOwnerIsEmptyAndShapeIsHidden()
        {
            var contentManager = _container.Resolve <IContentManager>();

            var item = contentManager.Create <ICommonPart>("test-item", VersionOptions.Draft, init => { });

            var user = contentManager.New <IUser>("User");

            _authn.Setup(x => x.GetAuthenticatedUser()).Returns(user);
            _authz.Setup(x => x.TryCheckAccess(StandardPermissions.SiteOwner, user, item)).Returns(true);

            item.Owner = user;

            var updater = new UpdatModelStub()
            {
                Owner = ""
            };

            _container.Resolve <DefaultShapeTableManagerTests.TestShapeProvider>().Discover =
                b => b.Describe("Parts_Common_Owner_Edit").From(TestFeature())
                .Placement(ctx => new PlacementInfo {
                Location = "-"
            });

            contentManager.UpdateEditor(item.ContentItem, updater);

            Assert.That(updater.ModelErrors.ContainsKey("OwnerEditor.Owner"), Is.False);
        }
        public void PublishingShouldFailIfOwnerIsEmpty()
        {
            var contentManager = _container.Resolve <IContentManager>();

            var item = contentManager.Create <ICommonPart>("test-item", VersionOptions.Draft, init => { });

            var user = contentManager.New <IUser>("User");

            _authn.Setup(x => x.GetAuthenticatedUser()).Returns(user);
            _authz.Setup(x => x.TryCheckAccess(StandardPermissions.SiteOwner, user, item)).Returns(true);

            item.Owner = user;

            var updater = new UpdatModelStub()
            {
                Owner = ""
            };

            _container.Resolve <DefaultShapeTableManagerTests.TestShapeProvider>().Discover =
                b => b.Describe("Parts_Common_Owner_Edit").From(TestFeature())
                .Placement(ShapePlacementParsingStrategy.BuildPredicate(c => true, new KeyValuePair <string, string>("Path", "~/yadda")), new PlacementInfo {
                Location = "Match"
            });

            contentManager.UpdateEditor(item.ContentItem, updater);

            Assert.That(updater.ModelErrors.ContainsKey("OwnerEditor.Owner"), Is.True);
        }
Example #4
0
        public void PublishingShouldNotThrowExceptionIfOwnerIsNull()
        {
            var contentManager = _container.Resolve <IContentManager>();

            var item = contentManager.Create <ICommonPart>("test-item", VersionOptions.Draft, init => { });

            var user = contentManager.New <IUser>("User");

            _authn.Setup(x => x.GetAuthenticatedUser()).Returns(user);
            _authz.Setup(x => x.TryCheckAccess(StandardPermissions.SiteOwner, user, item)).Returns(true);

            item.Owner = user;

            var updater = new UpdatModelStub()
            {
                Owner = null
            };

            contentManager.UpdateEditor(item.ContentItem, updater);
        }
        public void EditingShouldSetModifiedUtc()
        {
            var contentManager = _container.Resolve <IContentManager>();

            var user = contentManager.New <IUser>("User");

            _authn.Setup(x => x.GetAuthenticatedUser()).Returns(user);

            var createUtc = _clock.UtcNow;
            var item      = contentManager.Create <ICommonPart>("test-item", VersionOptions.Draft, init => { });

            contentManager.Publish(item.ContentItem);

            Assert.That(item.CreatedUtc, Is.EqualTo(createUtc));
            Assert.That(item.ModifiedUtc, Is.EqualTo(createUtc));
            Assert.That(item.VersionModifiedBy, Is.EqualTo(user.UserName));
            Assert.That(item.PublishedUtc, Is.EqualTo(createUtc));

            // Switch user
            var secondUser = contentManager.New <IUser>("AlternateUser");

            _authn.Setup(x => x.GetAuthenticatedUser()).Returns(secondUser);

            _clock.Advance(TimeSpan.FromMinutes(1));
            var editUtc = _clock.UtcNow;

            var updater = new UpdatModelStub()
            {
                Owner = ""
            };

            contentManager.UpdateEditor(item.ContentItem, updater);

            Assert.That(item.CreatedUtc, Is.EqualTo(createUtc));
            Assert.That(item.ModifiedUtc, Is.EqualTo(editUtc));
            Assert.That(item.PublishedUtc, Is.EqualTo(createUtc));
            Assert.That(updater.ModelErrors.Count, Is.EqualTo(0));
            Assert.That(item.VersionModifiedBy, Is.EqualTo(secondUser.UserName));
        }