public void NewsWidget_SelectByTagAndSortNewsFunctionality()
        {
            int tagsCount = 3;
            Guid[] taxonId = new Guid[tagsCount];
            string tagTitle = "Tag ";
            string sortExpession = "Title ASC";
            string[] newsTitles = { "Boat", "Cat", "Angel", "Kitty", "Dog" };
            string[] sortedTitles = { "Angel", "Boat", "Cat" };
            Guid[] newsId = new Guid[newsTitles.Count()];
            var newsController = new NewsController();
            newsController.Model.SortExpression = sortExpession;
            string[] tagTitles = new string[tagsCount];

            try
            {
                for (int i = 0; i < tagsCount; i++)
                {
                    taxonId[i] = this.serverOperationsTaxonomies.CreateFlatTaxon(Telerik.Sitefinity.TestUtilities.CommonOperations.TaxonomiesConstants.TagsTaxonomyId, tagTitle + i);
                    tagTitles[i] = tagTitle + i;
                }

                for (int i = 0; i < newsTitles.Count(); i++)
                {
                    if (i <= 2)
                    {
                        newsId[i] = this.serverOperationsNews.CreatePublishedNewsItem(newsTitles[i]);
                        this.serverOperationsNews.AssignTaxonToNewsItem(newsId[i], "Tags", taxonId[0]);
                    }
                    else
                    {
                        newsId[i] = this.serverOperationsNews.CreatePublishedNewsItem(newsTitles[i]);
                        this.serverOperationsNews.AssignTaxonToNewsItem(newsId[i], "Tags", taxonId[i - 2]);
                    }
                }

                newsController.Index(null);
                TaxonomyManager taxonomyManager = TaxonomyManager.GetManager();

                for (int i = 0; i < tagsCount; i++)
                {
                    ITaxon taxonomy = taxonomyManager.GetTaxon(taxonId[i]);
                    var items = newsController.Model.CreateListViewModel(taxonomy, 1).Items.ToArray();

                    if (i == 0)
                    {
                        for (int j = 0; j < items.Length; j++)
                            Assert.IsTrue(items[j].Fields.Title.Equals(sortedTitles[j], StringComparison.CurrentCulture), "The news with this title was not found!");
                    }
                    else
                    {
                        for (int j = 0; j < items.Length; j++)
                            Assert.IsTrue(items[j].Fields.Title.Equals(newsTitles[i + 2], StringComparison.CurrentCulture), "The news with this title was not found!");
                    }
                }
            }
            finally
            {
                this.serverOperationsTaxonomies.DeleteTags(tagTitles);
            }
        }
        public void NewsWidget_VerifyOpenSingleItemInCustomPage()
        {
            string testName = "VerifyOpenSingleItemInCustomPage";
            string pageNamePrefix = testName + "NewsPage";
            string pageTitlePrefix = testName + "News Page";
            string urlNamePrefix = testName + "news-page";
            int firstPageIndex = 1;
            int secondPageIndex = 2;
            string secondPageUrl = UrlPath.ResolveAbsoluteUrl("~/" + urlNamePrefix + secondPageIndex);

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

            this.pageOperations.CreatePageWithControl(mvcProxy, pageNamePrefix, pageTitlePrefix, urlNamePrefix, firstPageIndex);
            var secondPageId = this.pageOperations.CreatePageWithControl(mvcProxy, pageNamePrefix, pageTitlePrefix, urlNamePrefix, secondPageIndex);

            var newsController = new NewsController();
            newsController.OpenInSamePage = false;
            newsController.DetailsPageId = secondPageId;
            mvcProxy.Settings = new ControllerSettings(newsController);

            newsController.Index(null);
            Assert.AreEqual(secondPageId, newsController.ViewBag.DetailsPageID, "The second page ID is not provided correctly to the list view");

            var items = newsController.Model.CreateListViewModel(null, 1).Items.ToArray();
            Assert.AreEqual(this.newsCount, items.Length, "The count of the news item is not as expected");

            var expectedDetailNews = (NewsItem)items[0].DataItem;
            string detailNewsUrl = secondPageUrl + expectedDetailNews.ItemDefaultUrl;

            ActionExecutionRegister.ExecutedActionInfos.Clear();
            PageInvoker.ExecuteWebRequest(detailNewsUrl);

            this.AssertDetailActionInvokation(expectedDetailNews);
        }