public void EventWidget_AllEvents_FilterByCalendar()
        {
            var methodName = MethodInfo.GetCurrentMethod().Name;
            var calendarId = ServerOperations.Events().CreateCalendar(Guid.NewGuid(), "custom_calendar");

            ServerOperations.Events().CreateEvent(methodName + "_fromdefault", "some content", false, DateTime.Now, DateTime.Now.AddHours(2), ServerOperations.Events().GetDefaultCalendarId());
            ServerOperations.Events().CreateEvent(methodName + "_fromcustom", "some content", false, DateTime.Now, DateTime.Now.AddHours(2), calendarId);

            try
            {
                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(EventController).FullName;
                var eventController = new EventController();

                eventController.Model.NarrowSelectionMode = Telerik.Sitefinity.Frontend.Mvc.Models.SelectionMode.FilteredItems;
                eventController.Model.SerializedNarrowSelectionFilters = this.GetNarrowSelectionSerializedQueryData("Calendars", "Parent.Id.ToString()", "Parent.Id", calendarId, "System.String");

                mvcProxy.Settings = new ControllerSettings(eventController);

                using (var generator = new PageContentGenerator())
                {
                    generator.CreatePageWithWidget(mvcProxy, null, methodName, methodName, methodName, 0);
                    var pageContent = WebRequestHelper.GetPageWebContent(RouteHelper.GetAbsoluteUrl("~/" + methodName + "0"));

                    Assert.Contains(pageContent, methodName + "_fromcustom", System.StringComparison.Ordinal);
                    Assert.DoesNotContain(pageContent, methodName + "_fromdefault", System.StringComparison.Ordinal);
                }
            }
            finally
            {
                ServerOperations.Events().DeleteAllEvents();
                ServerOperations.Events().DeleteCalendar(calendarId);
            }
        }
        public void EventWidget_AllEvents_DisplayAll()
        {
            var methodName = MethodInfo.GetCurrentMethod().Name;

            try
            {
                this.BuildEvents(methodName);

                var eventController = new EventController();
                eventController.Model.DisplayMode   = ListDisplayMode.Paging;
                eventController.Model.SelectionMode = SelectionMode.AllItems;

                var mvcProxy = new MvcControllerProxy()
                {
                    Settings = new ControllerSettings(eventController), ControllerName = typeof(EventController).FullName
                };
                var containedEvents = new string[] { CurrentEventNameFormat, NextWeekEventNameFormat, NextMonthEventNameFormat, PreviousMonthEventNameFormat, PreviousWeekEventNameFormat }.Select(s => string.Format(CultureInfo.InvariantCulture, s, methodName));

                using (var generator = new PageContentGenerator())
                {
                    generator.CreatePageWithWidget(mvcProxy, null, methodName, methodName, methodName, 0);
                    var pageContent = WebRequestHelper.GetPageWebContent(RouteHelper.GetAbsoluteUrl("~/" + methodName + "0"));

                    foreach (var title in containedEvents)
                    {
                        Assert.Contains(pageContent, title, StringComparison.Ordinal);
                    }
                }
            }
            finally
            {
                ServerOperations.Events().DeleteAllEvents();
            }
        }
Пример #3
0
        public void LoginStatus_OnDetailsPage_DoesNotThrowException()
        {
            const string LoginStatusCaption = "login status";
            Guid         newsItemId         = Guid.Parse("4785b751-ce3a-4e5e-ba81-138f8f2a8a09");
            string       testName           = System.Reflection.MethodInfo.GetCurrentMethod().Name;

            var mvcNewsProxy = new MvcControllerProxy();

            mvcNewsProxy.ControllerName = typeof(NewsController).FullName;
            var newsController = new NewsController();

            newsController.OpenInSamePage = true;
            mvcNewsProxy.Settings         = new ControllerSettings(newsController);

            var mvcLoginStatusProxy = new MvcControllerProxy();

            mvcLoginStatusProxy.ControllerName = typeof(LoginStatusController).FullName;

            using (var generator = new PageContentGenerator())
            {
                var pageId = generator.CreatePageWithWidget(mvcNewsProxy, null, testName, testName, testName, 0);
                PageContentGenerator.AddControlToPage(pageId, mvcLoginStatusProxy, LoginStatusCaption);

                string pageUrl     = UrlPath.ResolveAbsoluteUrl("~/" + testName + "0");
                var    newsManager = NewsManager.GetManager();
                try
                {
                    var newsItem = newsManager.CreateNewsItem(newsItemId);
                    newsItem.Title   = testName;
                    newsItem.UrlName = testName;
                    newsManager.Lifecycle.Publish(newsItem);
                    newsManager.SaveChanges();

                    string detailNewsUrl = pageUrl + newsItem.ItemDefaultUrl;
                    var    pageContent   = WebRequestHelper.GetPageWebContent(RouteHelper.GetAbsoluteUrl(detailNewsUrl));

                    Assert.DoesNotContain(pageContent, "Exception occured while executing the controller. Check error logs for details.", StringComparison.Ordinal);
                }
                finally
                {
                    newsManager.Delete(newsManager.GetNewsItem(newsItemId));
                    newsManager.SaveChanges();
                }
            }
        }
        public void CreatePageWithNoOutputIndexingModeWidget_RenderPageInMemory_ResponseDoesNotContainWidget()
        {
            string testName = System.Reflection.MethodInfo.GetCurrentMethod().Name;
            string pageNamePrefix = testName + "MvcPage";
            string pageTitlePrefix = testName + "Mvc Page";
            string urlNamePrefix = testName + "mvc-page";
            int index = 1;

            var mvcProxy = new MvcControllerProxy();
            mvcProxy.ControllerName = typeof(DummyNoOutputInIndexingController).FullName;

            using (var contentGenerator = new PageContentGenerator())
            {
                var pageId = contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, index);
                var pageNode = PageManager.GetManager().GetPageNode(pageId);
                var content = new InMemoryPageRender().RenderPage(pageNode);

                Assert.DoesNotContain(content, DummyNoOutputInIndexingController.Output, "The output of the widget that should not have been rendered was found!");
            }
        }
        public void EventWidget_AllEvents_FilterByCustomHierarchicalCategories()
        {
            var methodName = MethodInfo.GetCurrentMethod().Name;

            ServerOperations.Events().CreateEvent(methodName + "_notclassified");
            var eventId = ServerOperations.Events().CreateEvent(methodName + "_classified");

            ServerOperations.Taxonomies().CreateHierarchicalTaxonomy("Custom");
            ServerOperations.Taxonomies().CreateHierarchicalTaxon("parent", null, "Custom");
            ServerOperations.Taxonomies().CreateHierarchicalTaxon("child", "parent", "Custom");
            var taxonId = ServerOperations.Taxonomies().CreateHierarchicalTaxon(methodName, "child", "Custom");

            ServerOperations.Events().AssignTaxonToEventItem(eventId, "Category", taxonId);

            try
            {
                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(EventController).FullName;
                var eventController = new EventController();

                eventController.Model.NarrowSelectionMode = Telerik.Sitefinity.Frontend.Mvc.Models.SelectionMode.FilteredItems;
                eventController.Model.SerializedNarrowSelectionFilters = this.GetNarrowSelectionSerializedQueryData("Category", "Category", methodName, taxonId);

                mvcProxy.Settings = new ControllerSettings(eventController);

                using (var generator = new PageContentGenerator())
                {
                    generator.CreatePageWithWidget(mvcProxy, null, methodName, methodName, methodName, 0);
                    var pageContent = WebRequestHelper.GetPageWebContent(RouteHelper.GetAbsoluteUrl("~/" + methodName + "0"));

                    Assert.Contains(pageContent, methodName + "_classified", System.StringComparison.Ordinal);
                    Assert.DoesNotContain(pageContent, methodName + "_notclassified", System.StringComparison.Ordinal);
                }
            }
            finally
            {
                ServerOperations.Events().DeleteAllEvents();
                ServerOperations.Taxonomies().DeleteCategories(methodName, "child", "parent");
                ServerOperations.Taxonomies().DeleteHierarchicalTaxonomy("Custom");
            }
        }
Пример #6
0
        public void CreatePageWithNoOutputIndexingModeWidget_RenderPageInMemory_ResponseDoesNotContainWidget()
        {
            string testName        = System.Reflection.MethodInfo.GetCurrentMethod().Name;
            string pageNamePrefix  = testName + "MvcPage";
            string pageTitlePrefix = testName + "Mvc Page";
            string urlNamePrefix   = testName + "mvc-page";
            int    index           = 1;

            var mvcProxy = new MvcControllerProxy();

            mvcProxy.ControllerName = typeof(DummyNoOutputInIndexingController).FullName;

            using (var contentGenerator = new PageContentGenerator())
            {
                var pageId   = contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, index);
                var pageNode = PageManager.GetManager().GetPageNode(pageId);
                var content  = new InMemoryPageRender().RenderPage(pageNode);

                Assert.DoesNotContain(content, DummyNoOutputInIndexingController.Output, "The output of the widget that should not have been rendered was found!");
            }
        }
        public void CreatePageWithFailingWidget_RenderPage_ResponseContainsErrorMessage()
        {
            string testName = System.Reflection.MethodInfo.GetCurrentMethod().Name;
            string pageNamePrefix = testName + "MvcPage";
            string pageTitlePrefix = testName + "Mvc Page";
            string urlNamePrefix = testName + "mvc-page";
            int index = 1;
            string url = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index);

            var mvcProxy = new MvcControllerProxy();
            mvcProxy.ControllerName = typeof(DummyFailingController).FullName;

            using (var contentGenerator = new PageContentGenerator())
            {
                contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, index);

                string responseContent = WebRequestHelper.GetPageWebContent(url);
                string expectedResult = Res.Get<InfrastructureResources>().ErrorExecutingController;

                Assert.Contains(responseContent, expectedResult, "The expected error message was not found on the page!");
            }
        }
Пример #8
0
        public void RequestPage_WithAttributeRoutedWidget_RoutedCorrectly()
        {
            using (var contentGenerator = new PageContentGenerator())
            {
                var testName        = MethodInfo.GetCurrentMethod().Name;
                var pageNamePrefix  = testName + "MvcPage";
                var pageTitlePrefix = testName + "Mvc Page";
                var urlNamePrefix   = testName + "mvc-page";
                var index           = 1;

                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(AttributeRoutingTestController).FullName;

                contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, 1);

                string url     = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index + "/" + AttributeRoutingTestController.RoutePrefix + "/" + AttributeRoutingTestController.RelativeRoute);
                string content = string.Empty;

                Assert.DoesNotThrow(() => content = WebRequestHelper.GetPageWebContent(url), "Could not get the page successfully.");
                Assert.Contains(content, AttributeRoutingTestController.Content, "The correct action was not rendered.");
            }
        }
Пример #9
0
        public void RequestPage_WithAttributeRoutedWidget_RoutedCorrectly()
        {
            using (var contentGenerator = new PageContentGenerator())
            {
                var testName = MethodInfo.GetCurrentMethod().Name;
                var pageNamePrefix = testName + "MvcPage";
                var pageTitlePrefix = testName + "Mvc Page";
                var urlNamePrefix = testName + "mvc-page";
                var index = 1;

                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(AttributeRoutingTestController).FullName;

                contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, 1);

                string url = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index + "/" + AttributeRoutingTestController.RoutePrefix + "/" + AttributeRoutingTestController.RelativeRoute);
                string content = string.Empty;

                Assert.DoesNotThrow(() => content = WebRequestHelper.GetPageWebContent(url), "Could not get the page successfully.");
                Assert.Contains(content, AttributeRoutingTestController.Content, "The correct action was not rendered.");
            }
        }
        private void TestFilterByDate(string methodName, string serializedAdditionalFilters, IEnumerable <string> containedEvents, IEnumerable <string> notContainedEvents)
        {
            try
            {
                this.BuildEvents(methodName);

                var eventController = new EventController();
                eventController.Model.DisplayMode                 = ListDisplayMode.Paging;
                eventController.Model.SelectionMode               = SelectionMode.FilteredItems;
                eventController.Model.NarrowSelectionMode         = SelectionMode.AllItems;
                eventController.Model.SerializedAdditionalFilters = serializedAdditionalFilters;

                var mvcProxy = new MvcControllerProxy()
                {
                    Settings = new ControllerSettings(eventController), ControllerName = typeof(EventController).FullName
                };

                using (var generator = new PageContentGenerator())
                {
                    generator.CreatePageWithWidget(mvcProxy, null, methodName, methodName, methodName, 0);
                    var pageContent = WebRequestHelper.GetPageWebContent(RouteHelper.GetAbsoluteUrl("~/" + methodName + "0"));

                    foreach (var title in containedEvents)
                    {
                        Assert.Contains(pageContent, title, StringComparison.Ordinal);
                    }

                    foreach (var title in notContainedEvents)
                    {
                        Assert.DoesNotContain(pageContent, title, StringComparison.Ordinal);
                    }
                }
            }
            finally
            {
                ServerOperations.Events().DeleteAllEvents();
            }
        }
Пример #11
0
        public void CreatePageWithFailingWidget_RenderPage_ResponseContainsErrorMessage()
        {
            string testName        = System.Reflection.MethodInfo.GetCurrentMethod().Name;
            string pageNamePrefix  = testName + "MvcPage";
            string pageTitlePrefix = testName + "Mvc Page";
            string urlNamePrefix   = testName + "mvc-page";
            int    index           = 1;
            string url             = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index);

            var mvcProxy = new MvcControllerProxy();

            mvcProxy.ControllerName = typeof(DummyFailingController).FullName;

            using (var contentGenerator = new PageContentGenerator())
            {
                contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, index);

                string responseContent = WebRequestHelper.GetPageWebContent(url);
                string expectedResult  = Res.Get <InfrastructureResources>().ErrorExecutingController;

                Assert.Contains(responseContent, expectedResult, "The expected error message was not found on the page!");
            }
        }
Пример #12
0
        public void LoginStatus_NonExistingUrl_Returns404()
        {
            string testName = System.Reflection.MethodInfo.GetCurrentMethod().Name;

            var mvcLoginStatusProxy = new MvcControllerProxy();

            mvcLoginStatusProxy.ControllerName = typeof(LoginStatusController).FullName;

            using (var generator = new PageContentGenerator())
            {
                generator.CreatePageWithWidget(mvcLoginStatusProxy, null, testName, testName, testName, 0);

                var pageUrl = UrlPath.ResolveAbsoluteUrl("~/" + testName + "0");
                try
                {
                    HttpWebRequest.Create(pageUrl + "/non-existing-page").GetResponse();
                }
                catch (WebException ex)
                {
                    var response = (HttpWebResponse)ex.Response;
                    Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
                }
            }
        }
Пример #13
0
        public void RequestDetailsPage_WithNewsWidgetAndContentBlock_ResponseOk()
        {
            using (var contentGenerator = new PageContentGenerator())
            {
                var testName        = MethodInfo.GetCurrentMethod().Name;
                var pageNamePrefix  = testName + "MvcPage";
                var pageTitlePrefix = testName + "Mvc Page";
                var urlNamePrefix   = testName + "mvc-page";
                var newsItemName    = testName + "-news";
                var index           = 1;

                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(RoutingTests.NewsController).FullName;

                var pageId = contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, 1);

                mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(RoutingTests.ContentBlockController).FullName;

                PageContentGenerator.AddControlToPage(pageId, mvcProxy, typeof(RoutingTests.ContentBlockController).Name);

                try
                {
                    var newsItemId  = ServerOperations.News().CreatePublishedNewsItem(newsItemName);
                    var newsItemUrl = App.WorkWith().NewsItem(newsItemId).Get().ItemDefaultUrl;

                    string url = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index + "/" + newsItemUrl);

                    Assert.DoesNotThrow(() => WebRequestHelper.GetPageWebContent(url), "Could not get the page successfully.");
                }
                finally
                {
                    ServerOperations.News().DeleteNewsItem(newsItemName);
                }
            }
        }
Пример #14
0
        public void RequestDetailsPage_WithNewsWidgetAndContentBlock_ResponseOk()
        {
            using (var contentGenerator = new PageContentGenerator())
            {
                var testName = MethodInfo.GetCurrentMethod().Name;
                var pageNamePrefix = testName + "MvcPage";
                var pageTitlePrefix = testName + "Mvc Page";
                var urlNamePrefix = testName + "mvc-page";
                var newsItemName = testName + "-news";
                var index = 1;

                var mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(RoutingTests.NewsController).FullName;

                var pageId = contentGenerator.CreatePageWithWidget(mvcProxy, string.Empty, pageNamePrefix, pageTitlePrefix, urlNamePrefix, 1);

                mvcProxy = new MvcControllerProxy();
                mvcProxy.ControllerName = typeof(RoutingTests.ContentBlockController).FullName;

                PageContentGenerator.AddControlToPage(pageId, mvcProxy, typeof(RoutingTests.ContentBlockController).Name);

                try
                {
                    var newsItemId = ServerOperations.News().CreatePublishedNewsItem(newsItemName);
                    var newsItemUrl = App.WorkWith().NewsItem(newsItemId).Get().ItemDefaultUrl;

                    string url = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + index + "/" + newsItemUrl);

                    Assert.DoesNotThrow(() => WebRequestHelper.GetPageWebContent(url), "Could not get the page successfully.");
                }
                finally
                {
                    ServerOperations.News().DeleteNewsItem(newsItemName);
                }
            }
        }