private Guid CreateTemplateWithWidgetAndBasePageOnIt(PageTemplateFramework framework, Controller widgetController, out Guid pageId, out string pageUrl) { var pageManager = PageManager.GetManager(); // Create template var templateId = framework == PageTemplateFramework.Hybrid ? ServerOperations.Templates().CreateHybridMVCPageTemplate(FrontendModuleFilterTests.TemplateTitle + Guid.NewGuid().ToString("N")) : ServerOperations.Templates().CreatePureMVCPageTemplate(FrontendModuleFilterTests.TemplateTitle + Guid.NewGuid().ToString("N")); // Place widget on template var mvcProxy = new MvcControllerProxy(); mvcProxy.ControllerName = widgetController.GetType().FullName; mvcProxy.Settings = new ControllerSettings(widgetController); SampleUtilities.AddControlToTemplate(templateId, mvcProxy, "Body", "FrontendModuleFilterTestsWidgetCaption"); // Create page with template var template = pageManager.GetTemplates().Where(t => t.Id == templateId).SingleOrDefault(); pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "TestPageName", "test-page-url"); var page = pageManager.GetPageNode(pageId); pageUrl = RouteHelper.GetAbsoluteUrl(page.GetFullUrl()); return(templateId); }
public void CreatePage_Bootstrap_CheckFormTagNotExistPreviewMode() { Guid bootstrapPageId = Guid.Empty; FeatherServerOperations.FeatherModule().EnsureFeatherEnabled(); try { var suffix = Guid.NewGuid().ToString("N"); var bootstrapTemplate = this.GetDefaultBootstrapTemplate(); var bootstrapPageName = "PageBootstrap"; var previewFormTagPattern = "<form[\\s].*[\\s]?id=\"aspnetForm\".*>.*"; // page preview bootstrap bootstrapPageId = FeatherServerOperations.Pages().CreatePageWithTemplate(bootstrapTemplate, bootstrapPageName + suffix, bootstrapPageName + suffix); var bootstrapPagePreviewFormTagsCount = this.PagePreviewFormTags(bootstrapPageId, previewFormTagPattern); // template preview bootstrap var bootstrapTemplatePreviewFormTagsCount = this.TemplatePreviewFormTags(bootstrapTemplate, previewFormTagPattern); Assert.IsFalse(bootstrapPagePreviewFormTagsCount == 1, "Default ASP.Net form tag exist in Bootstrap package in page preview mode"); Assert.IsFalse(bootstrapTemplatePreviewFormTagsCount == 1, "Default ASP.Net form tag exist for Bootstrap package in template preview mode"); } finally { if (bootstrapPageId != Guid.Empty) { ServerOperations.Pages().DeletePage(bootstrapPageId); } } }
public void Navigation_MarkupIsCorrect() { var controller = new NavigationFieldController(); var control = new MvcWidgetProxy(); control.ControllerName = typeof(NavigationFieldController).FullName; control.Settings = new ControllerSettings(controller); var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "NavigationFieldValueTest", "section-header-field-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); var pageName = Res.Get <FieldResources>().PageName + "1"; Assert.IsTrue(pageContent.Contains(pageName), "Form did not render navigation field pages"); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void ParagraphTextFieldTests_EditDefaultValue_MarkupIsCorrect() { const string DefaultText = "My default text"; var controller = new ParagraphTextFieldController(); controller.MetaField.DefaultValue = DefaultText; var control = new MvcWidgetProxy(); control.Settings = new ControllerSettings(controller); control.ControllerName = typeof(ParagraphTextFieldController).FullName; var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "ParagraphTextFieldSubmitValueTest", "paragraph-text-field-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains(DefaultText), "Form did not render the default text in the paragraph text field."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
private int PagePreviewFormTags(Guid pageId, string previewFormTagPattern) { string pagePreviewContent = FeatherServerOperations.Pages().GetPageContent(pageId, true, "action/preview"); var pagePreviewFormTagsCount = Regex.Matches(pagePreviewContent, previewFormTagPattern, RegexOptions.IgnoreCase).Count; return(pagePreviewFormTagsCount); }
public void TextField_EditInputType_MarkupIsCorrect() { var control = new MvcWidgetProxy(); control.ControllerName = typeof(TextFieldController).FullName; var controller = new TextFieldController(); controller.Model.InputType = Telerik.Sitefinity.Frontend.Forms.Mvc.Models.Fields.TextField.TextType.DateTimeLocal; control.Settings = new ControllerSettings(controller); var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "TextFieldTypeTest", "text-field-type-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains("type=\"datetime-local\""), "Form did not render the input type in the text field."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void LayoutTemplates_CreateTemplateAndAddLayoutFile_VerifyTemplateBasedOnLayout() { var folderPath = Path.Combine(this.SfPath, "MVC", "Views", "Layouts"); try { var templateId = ServerOperations.Templates().CreatePureMVCPageTemplate(TemplateTitle); Guid pageId = ServerOperations.Pages().CreatePage(PageTitle, templateId); if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } string filePath = Path.Combine(folderPath, LayoutFileName); FeatherServerOperations.ResourcePackages().AddNewResource(LayoutFileResource, filePath); var nodeId = ServerOperations.Pages().GetPageNodeId(pageId); var pageContent = FeatherServerOperations.Pages().GetPageContent(nodeId); Assert.IsTrue(pageContent.Contains(TestLayoutTemplateText), "Layout text was not found on the page"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(TemplateTitle); var filePath = Path.Combine(folderPath, LayoutFileName); File.Delete(filePath); } }
public void FormsWidget_AddWidgetToFormDescription_FormIsUpdated() { var gridVirtualPath = "~/Frontend-Assembly/Telerik.Sitefinity.Frontend/GridSystem/Templates/grid-3+9.html"; var control = new GridControl(); control.Layout = gridVirtualPath; var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "FormsPageCacheTest", "forms-page-cache-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); string pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains("class=\"sf_colsIn four wide column\""), "SemanticUI grid content not found."); ServerOperationsFeather.Forms().AddFormWidget(formId, new GridControl() { Layout = "<div class=\"sf_colsIn\">Funny widget.</div>" }); pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains("Funny widget."), "Form did not render the new control."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void DropdownListFieldTests_EditDefaultValue_MarkupIsCorrect() { var controller = new DropdownListFieldController(); var control = new MvcWidgetProxy(); control.Settings = new ControllerSettings(controller); control.ControllerName = typeof(DropdownListFieldController).FullName; var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "DropdownListFieldSubmitValueTest", "dropdown-list-field-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains(Res.Get <FieldResources>().OptionSelect), "Form did not render the select default choice in the dropdown list field."); Assert.IsTrue(pageContent.Contains(Res.Get <FieldResources>().OptionFirstChoice), "Form did not render the first default choice in the dropdown list field."); Assert.IsTrue(pageContent.Contains(Res.Get <FieldResources>().OptionSecondChoice), "Form did not render the second default choice in the dropdown list field."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void ResourcePackageLayoutFiles_CreateTemplateAndAddLayoutFile_VerifyPublicPage() { string packageName = "TestPackageNoLayouts"; string packageResource = "Telerik.Sitefinity.Frontend.TestUtilities.Data.TestPackageNoLayouts.zip"; string layoutName = "TestLayout.cshtml"; string layoutResource = "Telerik.Sitefinity.Frontend.TestUtilities.Data.TestLayout.cshtml"; string templateTitle = "TestPackageNoLayouts.TestLayout"; string pageTitle = "FeatherTestPage"; string testLayoutTemplateText = "Test Layout"; string packagePath = FeatherServerOperations.ResourcePackages().GetResourcePackagesDestination(packageName); FeatherServerOperations.ResourcePackages().AddNewResourcePackage(packageResource); try { var templateId = FeatherServerOperations.Pages().CreatePureMvcTemplate(templateTitle); Guid pageId = ServerOperations.Pages().CreatePage(pageTitle, templateId); var filePath = Path.Combine(packagePath, "MVC", "Views", "Layouts", layoutName); FeatherServerOperations.ResourcePackages().AddNewResource(layoutResource, filePath); var nodeId = ServerOperations.Pages().GetPageNodeId(pageId); var pageContent = FeatherServerOperations.Pages().GetPageContent(nodeId); Assert.IsTrue(pageContent.Contains(testLayoutTemplateText), "Layout text was not found on the page"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(templateTitle); FeatherServerOperations.ResourcePackages().DeleteDirectory(packagePath); } }
public void SetUp() { string templateName = ServerArrangementContext.GetCurrent().Values["templateName"]; Guid templateId = ServerOperations.Templates().GetTemplateIdByTitle(templateName); Guid parentPageId = ServerOperations.Pages().CreatePage(PageName, templateId); Guid pageNodeId = ServerOperations.Pages().GetPageNodeId(parentPageId); FeatherServerOperations.Pages().AddMvcWidgetToPage(pageNodeId, typeof(NavigationController).FullName, WidgetCaption, PlaceHolderId); Guid childPage1Id = Guid.NewGuid(); ServerOperations.Pages().CreatePage(ChildPage1, childPage1Id, pageNodeId); ServerOperations.Pages().CreateInternalRedirectPage(Page2Redirect, pageNodeId); ServerOperations.Pages().CreateExternalRedirectPage(Page1Redirect, ExternalUrl); Guid unpublisId = ServerOperations.Pages().CreatePage(UnpublishPage); ServerOperations.Multilingual().Pages().UnpublishPage(unpublisId); ServerOperations.Pages().CreateDraftPage(PageDraft); Guid pageGroup2Id = Guid.NewGuid(); ServerOperations.Pages().CreatePageGroup(pageGroup2Id, Guid.Empty, Page2Group); Guid pageGroupId = Guid.NewGuid(); ServerOperations.Pages().CreatePageGroup(pageGroupId, Guid.Empty, PageGroup); Guid childPage2Id = Guid.NewGuid(); ServerOperations.Pages().CreatePage(ChildPage2, childPage2Id, pageGroupId); }
public void FoundationResourcePackage_AddNewLayoutFile_VerifyGeneratedTemplateAndCreatedPageContent() { int templatesCount = this.PageManager.GetTemplates().Count(); try { string filePath = FeatherServerOperations.ResourcePackages().GetResourcePackageDestinationFilePath(Constants.PackageName, Constants.LayoutFileName); FeatherServerOperations.ResourcePackages().AddNewResource(Constants.LayoutFileResource, filePath); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 1); var template = this.PageManager.GetTemplates().Where(t => t.Title == Constants.TemplateTitle).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, Constants.PageTitle, Constants.PageUrl); var page = this.PageManager.GetPageNode(pageId); var pageUrl = page.GetFullUrl(); pageUrl = RouteHelper.GetAbsoluteUrl(pageUrl); string pageContent = WebRequestHelper.GetPageWebContent(pageUrl); Assert.IsTrue(pageContent.Contains(Constants.LayoutTemplateText), "Layout template text was not found in the page content"); } finally { ServerOperations.Pages().DeletePage(Constants.PageTitle); ServerOperations.Templates().DeletePageTemplate(Constants.TemplateTitle); string filePath = FeatherServerOperations.ResourcePackages().GetResourcePackageDestinationFilePath(Constants.PackageName, Constants.LayoutFileName); File.Delete(filePath); } }
public void ResourcePackageLayoutFiles_ReplaceLayoutFile_VerifyTemplateAndPage() { string resourceForReplace = "Telerik.Sitefinity.Frontend.TestUtilities.Data.LayoutFileReplace.Package1.zip"; string packageResource = "Telerik.Sitefinity.Frontend.TestUtilities.Data.Package1.zip"; string packageName = "Package1"; string layoutFile = "test-layout.cshtml"; string backFileName = "test-layout.cshtml.bac"; string sitefinityPath = FeatherServerOperations.ResourcePackages().SfPath; string tempFolder = "Temp"; string templateTitle = "test-layout"; string layoutTemplateText = "Package1 - test layout"; string layoutTemplateTextReplaced = "Package1 - test layout REPLACED"; string page = "featherpage"; PageManager pm = PageManager.GetManager(); int templatesCount = pm.GetTemplates().Count(); string tempFolderPath = Path.Combine(sitefinityPath, tempFolder); if (!Directory.Exists(tempFolderPath)) { Directory.CreateDirectory(tempFolderPath); } string filePath = FeatherServerOperations.ResourcePackages().GetResourcePackageDestinationFilePath(packageName, layoutFile); string packagePath = FeatherServerOperations.ResourcePackages().GetResourcePackagesDestination(packageName); string tempFilePath = Path.Combine(tempFolderPath, packageName, "Mvc", "Views", "Layouts", layoutFile); string backFilePath = Path.Combine(packagePath, backFileName); try { FeatherServerOperations.ResourcePackages().AddNewResourcePackage(resourceForReplace, tempFolderPath); FeatherServerOperations.ResourcePackages().AddNewResourcePackage(packageResource); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 1); var template = pm.GetTemplates().Where(t => t.Title == templateTitle).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, page, page); string pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains(layoutTemplateText), "Layout template text was not found in the page content"); File.Replace(tempFilePath, filePath, backFilePath); Thread.Sleep(1000); pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.AreEqual(pm.GetTemplates().Count(), templatesCount + 1, "Unnecessary template was generated"); Assert.IsTrue(pageContent.Contains(layoutTemplateTextReplaced), "New layout text was not found in the page content after replace"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(templateTitle); FeatherServerOperations.ResourcePackages().DeleteDirectory(packagePath); FeatherServerOperations.ResourcePackages().DeleteDirectory(tempFolderPath); } }
public void OutputCache_NoTempData_IsRetrievedFromCache() { var pageTitle = "FeatherPage"; var pageUrl = "featherpage"; var widgetName = "DateTimeWidet"; var placeholder = "Contentplaceholder1"; var url = UrlPath.ResolveAbsoluteUrl("~/" + pageUrl); try { DateTimeController.Count = 0; PageManager pageManager = PageManager.GetManager(); var template = pageManager.GetTemplates().FirstOrDefault(t => (t.Name == "Bootstrap.default" && t.Title == "default") || t.Title == "Bootstrap.default"); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, pageTitle, pageUrl); FeatherServerOperations.Pages().AddMvcWidgetToPage(pageId, typeof(DateTimeController).FullName, widgetName, placeholder); using (new AuthenticateUserRegion(null)) { var webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); webRequest.GetResponse(); webRequest.GetResponse(); Assert.AreEqual(1, DateTimeController.Count, "The content should be the same because the page is cached."); } } finally { ServerOperations.Pages().DeleteAllPages(); } }
private void AddDummyScriptControllerToPage(string pageTitlePrefix, string urlNamePrefix, PageTemplate template, string placeHolder = "Body") { var controls = new List <System.Web.UI.Control>(); var mvcProxy1 = new MvcControllerProxy(); mvcProxy1.ControllerName = typeof(DummyScriptController).FullName; var newsController1 = new DummyScriptController(); mvcProxy1.Settings = new ControllerSettings(newsController1); controls.Add(mvcProxy1); var mvcProxy2 = new MvcControllerProxy(); mvcProxy2.ControllerName = typeof(DummyScriptController).FullName; var newsController2 = new DummyScriptController(); mvcProxy2.Settings = new ControllerSettings(newsController2); controls.Add(mvcProxy2); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate( template, pageTitlePrefix, urlNamePrefix); PageContentGenerator.AddControlsToPage(pageId, controls, placeHolder); }
public void ContentBlock_PureMvcPageWithContentBlockWidget_VerifySearch() { string searchIndex = "TestSearchIndex"; var searchIndexId = Guid.NewGuid(); try { searchIndexId = ServerOperations.Search().CreateIndex(searchIndex); var templateId = FeatherServerOperations.Pages().CreatePureMvcTemplate(PageTemplate); var pageId = ServerOperations.Pages().CreatePage(PageTitle, templateId); pageId = ServerOperations.Pages().GetPageNodeId(pageId); ServerOperationsFeather.Pages().AddContentBlockWidgetToPage(pageId, ContentBlockText); this.Reindex(searchIndexId); this.SearchWithWaitOperation(searchIndex, ContentBlockText, 1); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(PageTemplate); this.DeleteSearchIndex(searchIndex, searchIndexId); this.EmptySearchFoler(); } }
public void GridWidget_DeleteGridWidgetOnPageFromFileSystem() { PageManager pageManager = PageManager.GetManager(); var gridVirtualPath = "~/ResourcePackages/Bootstrap/GridSystem/Templates/grid-9+3.html"; var gridTemplatePath = Path.Combine(this.SfPath, "ResourcePackages", "Bootstrap", "GridSystem", "Templates", "grid-9+3.html"); var newGridTemplatePath = Path.Combine(this.SfPath, "ResourcePackages", "Bootstrap", "GridSystem", "Templates", "grid-9+3-New.html"); File.Copy(gridTemplatePath, newGridTemplatePath); try { var template = pageManager.GetTemplates().Where(t => t.Title == TemplateTitle).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, PageNamePrefix, UrlNamePrefix); this.AddGridControlToPage(pageId, gridVirtualPath, PlaceHolder, Caption); File.Delete(gridTemplatePath); string pageContent = this.GetPageContent(pageId); Assert.IsTrue(pageContent.Contains(Row3), "Grid row not found in the page content"); Assert.IsTrue(pageContent.Contains(Row9), "Grid row not found in the page content"); } finally { File.Move(newGridTemplatePath, gridTemplatePath); Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); } }
public void PageBreak_SeparatorsMarkupIsCorrect() { var controller = new PageBreakController(); var control = new MvcWidgetProxy(); control.ControllerName = typeof(PageBreakController).FullName; control.Settings = new ControllerSettings(controller); var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "PageBreakValueTest", "page-break-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); var formMultipageDecorator = ObjectFactory.Resolve <IFormMultipageDecorator>(); Assert.IsTrue(pageContent.Contains(formMultipageDecorator.SeparatorBegin), "Form did not render page separators"); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void SetUp() { Guid templateId = ServerOperations.Templates().GetTemplateIdByTitle(BootstrapTemplate); Guid pageId = ServerOperations.Pages().CreatePage(PageName, templateId); Guid pageNodeId = ServerOperations.Pages().GetPageNodeId(pageId); FeatherServerOperations.Pages().AddMvcWidgetToPage(pageNodeId, typeof(MvcTestController).FullName, WidgetCaption, PlaceHolderId); }
public void LayoutTemplates_ReplaceLayoutFile_VerifyGeneratedTemplateAndCreatedPageContent() { PageManager pageManager = PageManager.GetManager(); int templatesCount = pageManager.GetTemplates().Count(); string folderPath = Path.Combine(this.SfPath, "MVC", "Views", "Layouts"); if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } string tempFolderPath = Path.Combine(this.SfPath, "MVC", "Views", "Temp"); if (!Directory.Exists(tempFolderPath)) { Directory.CreateDirectory(tempFolderPath); } string newLayoutTemplateText = "Test Layout Replaced"; string layoutResource = "Telerik.Sitefinity.Frontend.TestUtilities.Data.LayoutFileReplace.TestLayout.cshtml"; string backFileName = "TestLayout.cshtml.bac"; string filePath = Path.Combine(folderPath, LayoutFileName); string tempFilePath = Path.Combine(tempFolderPath, LayoutFileName); string backFilePath = Path.Combine(folderPath, backFileName); try { FeatherServerOperations.ResourcePackages().AddNewResource(LayoutFileResource, filePath); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 1); var template = pageManager.GetTemplates().Where(t => t.Title == TemplateTitle).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, PageTitle, PageUrl); string pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsTrue(pageContent.Contains(LayoutTemplateText), "Layout template text was not found in the page content"); FeatherServerOperations.ResourcePackages().AddNewResource(layoutResource, tempFilePath); File.Replace(tempFilePath, filePath, backFilePath); Thread.Sleep(1000); pageContent = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.AreEqual(pageManager.GetTemplates().Count(), templatesCount + 1, "Unnecessary template was generated"); Assert.IsTrue(pageContent.Contains(newLayoutTemplateText), "New layout text was not found in the page content after replace"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(TemplateTitle); File.Delete(filePath); File.Delete(backFilePath); FeatherServerOperations.ResourcePackages().DeleteDirectory(tempFolderPath); } }
public void SetUp() { ServerOperations.Documents().Upload(DefaultLibraryTitle, DocumentTitle, DocumentResource); Guid templateId = ServerOperations.Templates().GetTemplateIdByTitle(BootstrapTemplate); Guid pageId = ServerOperations.Pages().CreatePage(PageName, templateId); Guid pageNodeId = ServerOperations.Pages().GetPageNodeId(pageId); FeatherServerOperations.Pages().AddMvcWidgetToPage(pageNodeId, typeof(TestMediaSelectorFieldController).FullName, WidgetCaption, PlaceHolderId); }
public void SetUp() { string templateName = ServerArrangementContext.GetCurrent().Values["templateName"]; Guid templateId = ServerOperations.Templates().GetTemplateIdByTitle(templateName); Guid parentPageId = ServerOperations.Pages().CreatePage(PageName, templateId); Guid pageNodeId = ServerOperations.Pages().GetPageNodeId(parentPageId); FeatherServerOperations.Pages().AddMvcWidgetToPage(pageNodeId, typeof(NavigationController).FullName, WidgetCaption, PlaceHolderId); ServerOperations.Pages().CreatePage(SiblingPageName); }
public void ResourcePackage_DeleteResourcePackage_VerifyTemplateAndPageNotBasedOnLayout() { string pageName = "FeatherPage" + Guid.NewGuid().ToString(); string packageName = "Package1"; string packageResource = "Telerik.Sitefinity.Frontend.TestUtilities.Data.Package1.zip"; string templateTitle = "Package1.test-layout"; string layoutText = "Package1 - test layout"; string serverErrorMsg = "Server Error"; PageManager pm = PageManager.GetManager(); Guid pageId = ServerOperations.Pages().CreatePage(pageName); int templatesCount = pm.GetTemplates().Count(); FeatherServerOperations.ResourcePackages().AddNewResourcePackage(packageResource); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 1); var template = pm.GetTemplates().FirstOrDefault(t => t.Name == templateTitle); Assert.IsNotNull(template, "Template was not found"); string path = FeatherServerOperations.ResourcePackages().GetResourcePackagesDestination(packageName); try { ServerOperations.Templates().SetTemplateToPage(pageId, template.Id); var content = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsTrue(content.Contains(layoutText), "Template is not based on the layout file"); FeatherServerOperations.ResourcePackages().DeleteDirectory(path); if (Directory.Exists(path)) { throw new ArgumentException("Directory was not deleted"); } Thread.Sleep(1000); content = FeatherServerOperations.Pages().GetPageContent(pageId); Assert.IsFalse(content.Contains(serverErrorMsg), "Server Error was found on the page."); Assert.IsFalse(content.Contains(layoutText), "Template is still based on the layout file after package is deleted"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(templateTitle); if (Directory.Exists(path)) { FeatherServerOperations.ResourcePackages().DeleteDirectory(path); } } }
public void ParagraphTextField_SubmitValue_ResponseIsCorrect() { const string SubmitedParagraphValue = "Submitted paragraph value"; var controller = new ParagraphTextFieldController(); var control = new MvcWidgetProxy(); control.Settings = new ControllerSettings(controller); control.ControllerName = typeof(ParagraphTextFieldController).FullName; var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var formManager = FormsManager.GetManager(); var form = formManager.GetForms().FirstOrDefault(f => f.Id == formId); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "ParagraphTextFieldValueTest", "paragraph-text-field-submit-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageDataId = pageManager.GetPageNode(pageId).GetPageData().Id; var paragraphTextFieldControlData = form.Controls.Where(c => c.PlaceHolder == "Body" && !c.IsLayoutControl).FirstOrDefault(); var mvcFieldProxy = formManager.LoadControl(paragraphTextFieldControlData) as MvcWidgetProxy; var paragraphTextField = mvcFieldProxy.Controller as ParagraphTextFieldController; Assert.IsNotNull(paragraphTextField, "The paragraph text field was not found."); var paragraphTextFieldName = paragraphTextField.MetaField.FieldName; var formCollection = new FormCollection(); formCollection.Add(paragraphTextFieldName, SubmitedParagraphValue); var formControllerProxy = pageManager.LoadPageControls <MvcControllerProxy>(pageDataId).Where(contr => contr.Controller.GetType() == typeof(FormController)).FirstOrDefault(); var formController = formControllerProxy.Controller as FormController; formController.ControllerContext = new ControllerContext(); formController.ControllerContext.HttpContext = new HttpContextWrapper(HttpContext.Current); formController.Index(formCollection); var formEntry = formManager.GetFormEntries(form).LastOrDefault(); Assert.IsNotNull(formEntry, "Form entry has not been submitted."); var submittedValue = formEntry.GetValue(paragraphTextFieldName) as string; Assert.AreEqual(SubmitedParagraphValue, submittedValue, "Form did not persisted the submitted paragraph text value correctly."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void PageBreak_HeaderAndFooterFieldsInitialized() { var controllerForBody = new PageBreakController(); var controlForBody = new MvcWidgetProxy(); controlForBody.ControllerName = typeof(PageBreakController).FullName; controlForBody.Settings = new ControllerSettings(controllerForBody); var controllerForHeader = new TextFieldController(); var controlForHeader = new MvcWidgetProxy(); controlForHeader.ControllerName = typeof(TextFieldController).FullName; controlForHeader.Settings = new ControllerSettings(controllerForHeader); var controllerForFooter = new ParagraphTextFieldController(); var controlForFooter = new MvcWidgetProxy(); controlForFooter.ControllerName = typeof(ParagraphTextFieldController).FullName; controlForFooter.Settings = new ControllerSettings(controllerForFooter); var formId = ServerOperationsFeather.Forms().CreateFormWithWidgets(new List <Control>() { controlForHeader }, new List <Control>() { controlForBody }, new List <Control>() { controlForFooter }, null); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "PageBreakValueTest", "section-header-field-value-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageContent = ServerOperationsFeather.Pages().GetPageContent(pageId); var formMultipageDecorator = ObjectFactory.Resolve <IFormMultipageDecorator>(); Assert.IsTrue(pageContent.Contains(formMultipageDecorator.SeparatorBegin), "Form did not render page separators"); Assert.IsTrue(pageContent.Contains("data-sf-role=\"text-field-container\""), "Form did not render page header"); Assert.IsTrue(pageContent.Contains("data-sf-role=\"paragraph-text-field-container\""), "Form did not render page footer"); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void LayoutTemplates_EditLayoutFile_VerifyGeneratedTemplateAndCreatedPageContent() { PageManager pageManager = PageManager.GetManager(); int templatesCount = pageManager.GetTemplates().Count(); var folderPath = Path.Combine(this.SfPath, "MVC", "Views", "Layouts"); try { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } string filePath = Path.Combine(folderPath, LayoutFileName); FeatherServerOperations.ResourcePackages().AddNewResource(LayoutFileResource, filePath); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 1); var template = pageManager.GetTemplates().Where(t => t.Title == TemplateTitle).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found"); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, PageTitle, PageUrl); var page = pageManager.GetPageNode(pageId); var pageUrl = page.GetFullUrl(); pageUrl = RouteHelper.GetAbsoluteUrl(pageUrl); string pageContent = WebRequestHelper.GetPageWebContent(pageUrl); Assert.IsTrue(pageContent.Contains(LayoutTemplateText), "Layout template text was not found in the page content"); string layoutFile = Path.Combine(folderPath, LayoutFileName); FeatherServerOperations.ResourcePackages().EditLayoutFile(layoutFile, TestLayoutTemplateText, TestLayoutTemplateTextEdited); Thread.Sleep(1000); pageContent = WebRequestHelper.GetPageWebContent(pageUrl); Assert.IsFalse(pageContent.Contains(ServerErrorMessage), "Page throws a server error message"); Assert.IsFalse(pageContent.Contains(TestLayoutTemplateText), "Layout template text was found in the page content"); Assert.IsTrue(pageContent.Contains(TestLayoutTemplateTextEdited), "New layout text was not found in the page content"); } finally { ServerOperations.Pages().DeleteAllPages(); ServerOperations.Templates().DeletePageTemplate(TemplateTitle); var filePath = Path.Combine(folderPath, LayoutFileName); File.Delete(filePath); } }
public void ParagraphTextFieldUrl_SubmitIncorrectValue_ServerValidationFails() { var controller = new ParagraphTextFieldController(); controller.Model.ValidatorDefinition.Required = true; var control = new MvcWidgetProxy(); control.ControllerName = typeof(ParagraphTextFieldController).FullName; control.Settings = new ControllerSettings(controller); var formId = ServerOperationsFeather.Forms().CreateFormWithWidget(control); var formManager = FormsManager.GetManager(); var form = formManager.GetForms().FirstOrDefault(f => f.Id == formId); var pageManager = PageManager.GetManager(); try { var template = pageManager.GetTemplates().FirstOrDefault(t => t.Name == "SemanticUI.default" && t.Title == "default"); Assert.IsNotNull(template, "Template was not found"); var pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "ParagraphTextFieldValidationTest", "paragraph-text-field-validation-test"); ServerOperationsFeather.Forms().AddFormControlToPage(pageId, formId); var pageDataId = pageManager.GetPageNode(pageId).GetPageData().Id; var paragraphTextFieldControlData = form.Controls.Where(c => c.PlaceHolder == "Body" && !c.IsLayoutControl).FirstOrDefault(); var mvcFieldProxy = formManager.LoadControl(paragraphTextFieldControlData) as MvcWidgetProxy; var paragraphTextField = mvcFieldProxy.Controller as ParagraphTextFieldController; Assert.IsNotNull(paragraphTextField, "The paragraph text field was not found."); var paragraphTextFieldName = paragraphTextField.MetaField.FieldName; var formCollection = new FormCollection(); formCollection.Add(paragraphTextFieldName, string.Empty); var formControllerProxy = pageManager.LoadPageControls <MvcControllerProxy>(pageDataId).Where(contr => contr.Controller.GetType() == typeof(FormController)).FirstOrDefault(); var formController = formControllerProxy.Controller as FormController; formController.ControllerContext = new ControllerContext(); formController.ControllerContext.HttpContext = new HttpContextWrapper(HttpContext.Current); formController.Index(formCollection); Assert.IsFalse((bool)formController.TempData["sfSubmitSuccess"], "The Submit result was not correct"); var formEntry = formManager.GetFormEntries(form).LastOrDefault(); Assert.IsNull(formEntry, "Form entry has been submitted even when the form is not valid."); } finally { Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Pages().DeleteAllPages(); FormsModuleCodeSnippets.DeleteForm(formId); } }
public void ResourcePackageLayoutFiles_DeleteLayoutFile_VerifyTemplateAndPageNotBasedToLayout() { int templatesCount = this.PageManager.GetTemplates().Count(); try { FeatherServerOperations.ResourcePackages().AddNewResourcePackage(Constants.PackageResource); FeatherServerOperations.ResourcePackages().WaitForTemplatesCountToIncrease(templatesCount, 3); var template = this.PageManager.GetTemplates().Where(t => t.Title == Constants.TemplateTestLayout1).FirstOrDefault(); if (template == null) { throw new ArgumentException("template not found"); } Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, Constants.PageTitle, Constants.PageUrl); var page = this.PageManager.GetPageNode(pageId); var pageUrl = page.GetFullUrl(); pageUrl = RouteHelper.GetAbsoluteUrl(pageUrl); var pageContent = WebRequestHelper.GetPageWebContent(pageUrl); Assert.IsTrue(pageContent.Contains(Constants.TestLayout1TemplateText), "Layout template text was not found in the page content"); string filePath = FeatherServerOperations.ResourcePackages().GetResourcePackageDestinationFilePath(Constants.TestPackageName, Constants.TestLayoutFileName); File.Delete(filePath); template = this.PageManager.GetTemplates().Where(t => t.Title == Constants.TemplateTestLayout1).FirstOrDefault(); Assert.IsNotNull(template, "Template was not found after layout file was deleted."); this.PublishPage(page); pageContent = WebRequestHelper.GetPageWebContent(pageUrl); Assert.IsFalse(pageContent.Contains(Constants.ServerErrorMessage), "Page throws a server error message"); Assert.IsFalse(pageContent.Contains(Constants.TestLayout1TemplateText), "Layout template text was found in the page content"); } finally { string[] templates = new string[] { Constants.TemplateTestLayout1, Constants.TemplateTestLayout2, Constants.TemplateTestLayout3 }; ServerOperations.Pages().DeletePage(Constants.PageTitle); foreach (var template in templates) { ServerOperations.Templates().DeletePageTemplate(template); } string path = FeatherServerOperations.ResourcePackages().GetResourcePackagesDestination(Constants.TestPackageName); Directory.Delete(path, true); } }
public void SetUp() { // Gets the template name from the arrangement context string templateName = ServerArrangementContext.GetCurrent().Values["templateName"]; // Create a page with the corresponding template from the test - Bootstrap, Foundation or Semantic Guid templateId = ServerOperations.Templates().GetTemplateIdByTitle(templateName); Guid navPageId = ServerOperations.Pages().CreatePage(NavigationPage, templateId); Guid navPageNodeId = ServerOperations.Pages().GetPageNodeId(navPageId); // Adds navigation widget to the page FeatherServerOperations.Pages().AddMvcWidgetToPage(navPageNodeId, typeof(NavigationController).FullName, WidgetCaption, PlaceHolderId); }
private void CreatePageWithTemplate(string templateName, string pageName, string pageUrl) { PageManager pageManager = PageManager.GetManager(); var template = pageManager.GetTemplates().Where(t => t.Title == templateName).FirstOrDefault(); if (template == null) { throw new ArgumentException("template is null"); } FeatherServerOperations.Pages().CreatePageWithTemplate(template, pageName, pageUrl); }