コード例 #1
0
        public void DocumentTypeEditorControllerTests_Add_Tab_Button_Invalidates_Empty_Tab_Name()
        {
            //Arrange

            var schema = CreateNewSchema();

            UmbracoApplicationContext.AddPersistenceData(schema);

            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "submit.Tab", "New Tab" },
                { "NewTabName", "" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValidField("NewTabName"));
        }
コード例 #2
0
        protected EntitySchema CreateNewSchema(PropertyEditor propEditor = null, string alias = "test")
        {
            if (propEditor == null)
            {
                propEditor = new MandatoryPropertyEditor();
            }

            var attributeType = HiveModelCreationHelper.CreateAttributeType("test", "test", "test");

            attributeType.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(attributeType);

            var schema = HiveModelCreationHelper.MockEntitySchema(alias, alias);

            schema.TryAddAttributeDefinition(HiveModelCreationHelper.CreateAttributeDefinition("siteName", "Site Name", "", attributeType, null));
            schema.TryAddAttributeDefinition(HiveModelCreationHelper.CreateAttributeDefinition("bodyText", "Body Text", "", attributeType, null));

            //set all attribute defs to the attribute type
            schema.AttributeDefinitions.Where(x => !x.Alias.StartsWith("system-")).ForEach(x => x.AttributeType = attributeType);

            schema.RelationProxies.EnlistParent(new ContentRootSchema(), FixedRelationTypes.DefaultRelationType, 0);

            UmbracoApplicationContext.AddPersistenceData(schema);

            return(schema);
        }
コード例 #3
0
        public void DocumentTypeEditorControllerTests_Invalid_Model_State_When_Missing_Required_Values()
        {
            //Arrange

            var schema = CreateNewSchema();

            UmbracoApplicationContext.AddPersistenceData(schema);

            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "" },
                { "Alias", "" },
                { "Icon", "" },
                { "Thumbnail", "" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValid);
            Assert.IsFalse(controller.ModelState.IsValidField("Name"));
            Assert.IsFalse(controller.ModelState.IsValidField("Alias"));
            Assert.IsFalse(controller.ModelState.IsValidField("Icon"));
            Assert.IsFalse(controller.ModelState.IsValidField("Thumbnail"));
        }
コード例 #4
0
        public void DocumentTypeEditorControllerTests_IsCreatingNewProperty_Flag_Invalidates_Empty_NewProperty_Values()
        {
            //Arrange

            var schema = CreateNewSchema();

            UmbracoApplicationContext.AddPersistenceData(schema);

            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "Hello" },
                { "IsCreatingNewProperty", "true" },
                { "NewProperty.Name", "" },
                { "NewProperty.Alias", "" },
                { "NewProperty.DataTypeId", "" },
                { "NewProperty.SortOrder", "" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValidField("NewProperty.Name"));
            Assert.IsFalse(controller.ModelState.IsValidField("NewProperty.Alias"));
            Assert.IsFalse(controller.ModelState.IsValidField("NewProperty.DataTypeId"));
            Assert.IsFalse(controller.ModelState.IsValidField("NewProperty.SortOrder"));
        }
コード例 #5
0
        public void DataTypeEditorControllerTests_DataType_Saved()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "Hello World" },
                { "PropertyEditorId", "5A379AF0-0256-4BE9-9D01-F149603DB257" },
                { "submit.Save", "Save" }                                   //set save flag
            }, GetBackOfficeRequestContext(), false);

            //Act

            var result = controller.EditForm(dataTypeEntity.Id);

            //Assert

            Assert.IsTrue(result is RedirectToRouteResult);

            using (var uow = UmbracoApplicationContext.Hive.OpenReader <IContentStore>())
            {
                var latestEntity = uow.Repositories.Schemas.Get <AttributeType>(dataTypeEntity.Id);
                Assert.IsTrue(dataTypeEntity.UtcModified < latestEntity.UtcModified);
            }
        }
コード例 #6
0
        public void DocumentTypeEditorControllerTests_Add_Tab_Button_With_Duplicate_Name_Invalidates()
        {
            //Arrange

            var schema = CreateNewSchema();

            schema.AttributeGroups.Add(new AttributeGroup("tab1", "Tab 1", 0)
            {
                Id = new HiveId(Guid.NewGuid())
            });
            schema.AttributeGroups.Add(new AttributeGroup("tab2", "Tab 2", 1)
            {
                Id = new HiveId(Guid.NewGuid())
            });
            UmbracoApplicationContext.AddPersistenceData(schema);

            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "submit.Tab", "New Tab" },
                { "NewTabName", "Tab 2" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValidField("NewTabName"));
        }
コード例 #7
0
        public void DataTypeEditorControllerTests_PreValueModel_Data_Will_Be_Updated_With_Posted_Values()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "PreValueEditorModel.Value", "hello" }
            }, GetBackOfficeRequestContext());

            //Act
            var result = controller.EditForm(dataTypeEntity.Id) as ViewResult;

            //Assert
            Assert.IsTrue(controller.ModelState.IsValidField("PreValueEditorModel.Value"));
            Assert.AreEqual("hello", controller.ModelState["PreValueEditorModel.Value"].Value.AttemptedValue);
        }
コード例 #8
0
        public void DataTypeEditorControllerTests_All_Standard_Values_Bound()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "Hello World" },
                { "PropertyEditorId", "5A379AF0-0256-4BE9-9D01-F149603DB257" }
            }, GetBackOfficeRequestContext());

            //Act
            var result     = controller.EditForm(dataTypeEntity.Id) as ViewResult;
            var modelState = controller.ModelState;

            //Assert

            Assert.AreEqual("Hello World", controller.ModelState["Name"].Value.AttemptedValue);
            Assert.IsTrue(controller.ModelState.IsValidField("Name"));
            Assert.AreEqual("5A379AF0-0256-4BE9-9D01-F149603DB257", controller.ModelState["PropertyEditorId"].Value.AttemptedValue);
            Assert.IsTrue(controller.ModelState.IsValidField("PropertyEditorId"));
        }
コード例 #9
0
        public void DataTypeEditorControllerTests_Invalid_Model_State_When_Missing_Required_Values()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "" },
                { "PropertyEditorId", "" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = controller.EditForm(dataTypeEntity.Id) as ViewResult;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValidField("Name"));
            Assert.IsFalse(controller.ModelState.IsValidField("PropertyEditorId"));
        }
コード例 #10
0
        public void DataTypeEditorControllerTests_Create_New_Wizard_Step_Bound_And_Validated()
        {
            //Arrange

            var propEditor  = new MandatoryPropertyEditor();
            var createModel = new CreateDataTypeModel {
                Name = "test", PropertyEditorId = propEditor.Id
            };

            //create data type in persistence layer
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.CreateNewForm(createModel);
            var model  = (CreateDataTypeModel)result.Model;

            //Assert

            Assert.IsTrue(controller.ModelState.IsValidField("Name"));
            Assert.IsTrue(controller.ModelState.IsValidField("PropertyEditorId"));

            Assert.AreEqual("test", model.Name);
            Assert.AreEqual(propEditor.Id, model.PropertyEditorId);
        }
コード例 #11
0
        public JsonResult PerformRecycleApplication(bool onlyCheck)
        {
            if (!onlyCheck)
            {
                UmbracoApplicationContext.RestartApplicationPool(HttpContext);
                return(Json(new { status = "restarting" }));
            }

            return(Json(new { status = "restarted" }));
        }
コード例 #12
0
        public void DocumentTypeEditorControllerTests_Tab_Definitions_Bound_And_Validated()
        {
            //Arrange

            var schema = CreateNewSchema();
            var grp1   = new AttributeGroup("testtab1", "Tab 1", 0);
            var grp2   = new AttributeGroup("testtab2", "Tab 2", 1);

            schema.AttributeGroups.Add(grp1);
            schema.AttributeGroups.Add(grp2);
            UmbracoApplicationContext.AddPersistenceData(schema);


            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { string.Format("{0}.Name", grp1.Id.GetHtmlId()), "new name 1" },
                { string.Format("{0}.SortOrder", grp1.Id.GetHtmlId()), "100" },
                { string.Format("{0}.Name", grp2.Id.GetHtmlId()), "new name 2" },
                { string.Format("{0}.SortOrder", grp2.Id.GetHtmlId()), "200" },
            }, GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            var tab1 = model.DefinedTabs.Single(x => x.Id == grp1.Id);
            var tab2 = model.DefinedTabs.Single(x => x.Id == grp2.Id);

            Assert.AreEqual("new name 1", tab1.Name);
            Assert.AreEqual("new name 2", tab2.Name);
            Assert.AreEqual(100, tab1.SortOrder);
            Assert.AreEqual(200, tab2.SortOrder);
            Assert.IsTrue(controller.ModelState.IsValidField(string.Format("{0}.Name", grp1.Id.GetHtmlId())));
            Assert.IsTrue(controller.ModelState.IsValidField(string.Format("{0}.Name", grp2.Id.GetHtmlId())));
        }
コード例 #13
0
        protected Revision <TypedEntity> CreateEntityRevision(PropertyEditor propEditor, Action <Revision <TypedEntity> > beforeCommit)
        {
            EntitySchema docTypeEntity = CreateNewSchema(propEditor);

            //create some content properties including node name
            var nodeName = HiveModelCreationHelper.CreateAttribute(docTypeEntity.AttributeDefinitions.Single(x => x.Alias == NodeNameAttributeDefinition.AliasValue), "");
            var bodyText = HiveModelCreationHelper.CreateAttribute(docTypeEntity.AttributeDefinitions.Single(x => x.Alias == "bodyText"), "my-test-value1");
            var siteName = HiveModelCreationHelper.CreateAttribute(docTypeEntity.AttributeDefinitions.Single(x => x.Alias == "siteName"), "my-test-value2");

            var contentEntity = HiveModelCreationHelper.CreateVersionedTypedEntity(docTypeEntity, new[] { nodeName, bodyText, siteName });

            contentEntity.MetaData = new RevisionData(FixedStatusTypes.Draft);

            if (beforeCommit != null)
            {
                beforeCommit(contentEntity);
            }

            UmbracoApplicationContext.AddPersistenceData(contentEntity);

            return(contentEntity);
        }
コード例 #14
0
        public void DocumentTypeEditorControllerTests_Ensure_Allowed_Children_Are_Nulled_When_Posting_Empty_List()
        {
            //Arrange

            var schema = CreateNewSchema();

            schema.SetXmlConfigProperty("allowed-children", new[] { new HiveId(Guid.NewGuid()).ToString() });
            UmbracoApplicationContext.AddPersistenceData(schema);

            var controller = new DocumentTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>(), GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.EditForm(schema.Id);
            var model  = (DocumentTypeEditorModel)result.Model;

            //Assert

            Assert.IsFalse(model.AllowedChildren.Any(x => x.Selected)); //all items should be not selected
        }
コード例 #15
0
        public void DataTypeEditorControllerTests_Create_New_Wizard_Step_Bound_And_Invalidated()
        {
            //Arrange

            var createModel = new CreateDataTypeModel {
                Name = "", PropertyEditorId = Guid.Empty
            };

            //create data type in persistence layer
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(GetBackOfficeRequestContext());

            //Act
            var result = (ViewResult)controller.CreateNewForm(createModel);

            //Assert
            Assert.IsFalse(controller.ModelState.IsValidField("Name"));
        }