Ejemplo n.º 1
0
        public void DescendantsOrSelf_With_Examine()
        {
            var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService());

            using (var luceneDir = new RandomIdRamDirectory())
                using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir,
                                                                        validator: new ContentValueSetValidator(true)))
                    using (indexer.ProcessNonAsync())
                    {
                        rebuilder.RegisterIndex(indexer.Name);
                        rebuilder.Populate(indexer);

                        var searcher = indexer.GetSearcher();
                        var ctx      = GetUmbracoContext("/test");
                        var cache    = new PublishedMediaCache(ServiceContext.MediaService, ServiceContext.UserService, searcher, indexer, new StaticCacheProvider(), ContentTypesCache);

                        //we are using the media.xml media to test the examine results implementation, see the media.xml file in the ExamineHelpers namespace
                        var publishedMedia  = cache.GetById(1111);
                        var rootDescendants = publishedMedia.DescendantsOrSelf();
                        Assert.IsTrue(rootDescendants.Select(x => x.Id).ContainsAll(new[] { 1111, 2112, 2222, 1113, 1114, 1115, 1116 }));

                        var publishedChild1 = cache.GetById(2222);
                        var subDescendants  = publishedChild1.DescendantsOrSelf();
                        Assert.IsTrue(subDescendants.Select(x => x.Id).ContainsAll(new[] { 2222, 2112, 3113 }));
                    }
        }
Ejemplo n.º 2
0
        public void Convert_From_Standard_Xml()
        {
            var nodeId = 2112;

            var xml  = XElement.Parse(@"<Image id=""2112"" version=""5b3e46ab-3e37-4cfa-ab70-014234b5bd39"" parentID=""2222"" level=""3"" writerID=""0"" nodeType=""1032"" template=""0"" sortOrder=""1"" createDate=""2010-05-19T17:32:46"" updateDate=""2010-05-19T17:32:46"" nodeName=""Sam's Umbraco Image"" urlName=""acnestressscrub"" writerName=""Administrator"" nodeTypeAlias=""Image"" path=""-1,1111,2222,2112"" isDoc="""">
                <umbracoFile><![CDATA[/media/1234/blah.pdf]]></umbracoFile>
                <umbracoWidth>115</umbracoWidth>
                <umbracoHeight>268</umbracoHeight>
                <umbracoBytes>10726</umbracoBytes>
                <umbracoExtension>jpg</umbracoExtension>
                <Image id=""3113"" version=""5b3e46ab-3e37-4cfa-ab70-014234b5bd33"" parentID=""2112"" level=""4"" writerID=""0"" nodeType=""1032"" template=""0"" sortOrder=""2"" createDate=""2010-05-19T17:32:46"" updateDate=""2010-05-19T17:32:46"" nodeName=""Another Umbraco Image"" urlName=""acnestressscrub"" writerName=""Administrator"" nodeTypeAlias=""Image"" path=""-1,1111,2222,2112,3113"" isDoc="""">
                    <umbracoFile><![CDATA[/media/1234/blah.pdf]]></umbracoFile>
                    <umbracoWidth>115</umbracoWidth>
                    <umbracoHeight>268</umbracoHeight>
                    <umbracoBytes>10726</umbracoBytes>
                    <umbracoExtension>jpg</umbracoExtension>
                </Image>
            </Image>");
            var node = xml.DescendantsAndSelf("Image").Single(x => (int)x.Attribute("id") == nodeId);

            var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);

            var nav = node.CreateNavigator();

            var converted = publishedMedia.CreateFromCacheValues(
                publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/Image"), nodeId));

            Assert.AreEqual(nodeId, converted.Id);
            Assert.AreEqual(3, converted.Level);
            Assert.AreEqual(1, converted.SortOrder);
            Assert.AreEqual("Sam's Umbraco Image", converted.Name);
            Assert.AreEqual("-1,1111,2222,2112", converted.Path);
        }
Ejemplo n.º 3
0
        public void Convert_From_Search_Result()
        {
            var result = new SearchResult()
            {
                Id    = 1234,
                Score = 1
            };

            result.Fields.Add("__IndexType", "media");
            result.Fields.Add("__NodeId", "1234");
            result.Fields.Add("__NodeTypeAlias", Constants.Conventions.MediaTypes.Image);
            result.Fields.Add("__Path", "-1,1234");
            result.Fields.Add("__nodeName", "Test");
            result.Fields.Add("id", "1234");
            result.Fields.Add("nodeName", "Test");
            result.Fields.Add("nodeTypeAlias", Constants.Conventions.MediaTypes.Image);
            result.Fields.Add("parentID", "-1");
            result.Fields.Add("path", "-1,1234");
            result.Fields.Add("updateDate", "2012-07-16T10:34:09");
            result.Fields.Add("writerName", "Shannon");

            var store = new PublishedMediaCache();
            var doc   = store.ConvertFromSearchResult(result);

            DoAssert(doc, 1234, 0, 0, "", "Image", 0, "Shannon", "", 0, 0, "-1,1234", default(DateTime), DateTime.Parse("2012-07-16T10:34:09"), 2);
            Assert.AreEqual(null, doc.Parent);
        }
Ejemplo n.º 4
0
        public void Get_Item_Without_Examine()
        {
            var user  = ServiceContext.UserService.GetUserById(0);
            var mType = MakeNewMediaType(user, "TestMediaType");

            _mediaTypes[mType.Alias] = new PublishedContentType(mType, null);
            var mRoot   = MakeNewMedia("MediaRoot", mType, user, -1);
            var mChild1 = MakeNewMedia("Child1", mType, user, mRoot.Id);

            //var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234));
            var umbracoContext = GetUmbracoContext("/test");
            var cache          = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
            var publishedMedia = cache.GetById(mRoot.Id);

            Assert.IsNotNull(publishedMedia);

            Assert.AreEqual(mRoot.Id, publishedMedia.Id);
            Assert.AreEqual(mRoot.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"), publishedMedia.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"));
            Assert.AreEqual(mRoot.CreatorId, publishedMedia.CreatorId);
            //Assert.AreEqual(mRoot.User.Name, publishedMedia.CreatorName);
            Assert.AreEqual(mRoot.ContentType.Alias, publishedMedia.ContentType.Alias);
            Assert.AreEqual(mRoot.ContentType.Id, publishedMedia.ContentType.Id);
            Assert.AreEqual(mRoot.Level, publishedMedia.Level);
            Assert.AreEqual(mRoot.Name, publishedMedia.Name);
            Assert.AreEqual(mRoot.Path, publishedMedia.Path);
            Assert.AreEqual(mRoot.SortOrder, publishedMedia.SortOrder);
            Assert.IsNull(publishedMedia.Parent);
        }
Ejemplo n.º 5
0
        public void Ensure_Children_Sorted_With_Examine()
        {
            var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService());

            using (var luceneDir = new RandomIdRamDirectory())
                using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir,
                                                                        validator: new ContentValueSetValidator(true)))
                    using (indexer.ProcessNonAsync())
                    {
                        rebuilder.RegisterIndex(indexer.Name);
                        rebuilder.Populate(indexer);

                        var searcher = indexer.GetSearcher();
                        var ctx      = GetUmbracoContext("/test");
                        var cache    = new PublishedMediaCache(ServiceContext.MediaService, ServiceContext.UserService, searcher, new DictionaryAppCache(), ContentTypesCache, Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());

                        //we are using the media.xml media to test the examine results implementation, see the media.xml file in the ExamineHelpers namespace
                        var publishedMedia = cache.GetById(1111);
                        var rootChildren   = publishedMedia.Children().ToArray();
                        var currSort       = 0;
                        for (var i = 0; i < rootChildren.Count(); i++)
                        {
                            Assert.GreaterOrEqual(rootChildren[i].SortOrder, currSort);
                            currSort = rootChildren[i].SortOrder;
                        }
                    }
        }
Ejemplo n.º 6
0
        public void Convert_From_Search_Result(bool withKey)
        {
            var ctx = GetUmbracoContext("/test", 1234);
            var key = Guid.NewGuid();

            var result = new SearchResult()
            {
                Id    = 1234,
                Score = 1
            };

            result.Fields.Add("__IndexType", "media");
            result.Fields.Add("__NodeId", "1234");
            result.Fields.Add("__NodeTypeAlias", Constants.Conventions.MediaTypes.Image);
            result.Fields.Add("__Path", "-1,1234");
            result.Fields.Add("__nodeName", "Test");
            result.Fields.Add("id", "1234");
            if (withKey)
            {
                result.Fields.Add("key", key.ToString());
            }
            result.Fields.Add("nodeName", "Test");
            result.Fields.Add("nodeTypeAlias", Constants.Conventions.MediaTypes.Image);
            result.Fields.Add("parentID", "-1");
            result.Fields.Add("path", "-1,1234");
            result.Fields.Add("updateDate", "2012-07-16T10:34:09");
            result.Fields.Add("writerName", "Shannon");

            var store = new PublishedMediaCache(ctx.Application);
            var doc   = store.CreateFromCacheValues(store.ConvertFromSearchResult(result));

            DoAssert(doc, 1234, withKey ? key : default(Guid), 0, 0, "", "Image", 0, "Shannon", "", 0, 0, "-1,1234", default(DateTime), DateTime.Parse("2012-07-16T10:34:09"), 2);
            Assert.AreEqual(null, doc.Parent);
        }
Ejemplo n.º 7
0
        public void Get_Item_Without_Examine()
        {
            var user  = ServiceContext.UserService.GetUserById(0);
            var mType = MakeNewMediaType(user, "TestMediaType");

            _mediaTypes[mType.Alias] = new PublishedContentType(mType, null);
            var mRoot   = MakeNewMedia("MediaRoot", mType, user, -1);
            var mChild1 = MakeNewMedia("Child1", mType, user, mRoot.Id);

            //var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234));
            var umbracoContext = GetUmbracoContext("/test");
            var cache          = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null, HostingEnvironment), ServiceContext.MediaService, ServiceContext.UserService, new DictionaryAppCache(), ContentTypesCache, Factory.GetRequiredService <IEntityXmlSerializer>(), Factory.GetRequiredService <IUmbracoContextAccessor>(), VariationContextAccessor);
            var publishedMedia = cache.GetById(mRoot.Id);

            Assert.IsNotNull(publishedMedia);

            Assert.AreEqual(mRoot.Id, publishedMedia.Id);
            Assert.AreEqual(mRoot.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"), publishedMedia.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"));
            Assert.AreEqual(mRoot.CreatorId, publishedMedia.CreatorId);
            //Assert.AreEqual(mRoot.User.Name, publishedMedia.CreatorName);
            Assert.AreEqual(mRoot.ContentType.Alias, publishedMedia.ContentType.Alias);
            Assert.AreEqual(mRoot.ContentType.Id, publishedMedia.ContentType.Id);
            Assert.AreEqual(mRoot.Level, publishedMedia.Level);
            Assert.AreEqual(mRoot.Name, publishedMedia.Name);
            Assert.AreEqual(mRoot.Path, publishedMedia.Path);
            Assert.AreEqual(mRoot.SortOrder, publishedMedia.SortOrder);
            Assert.IsNull(publishedMedia.Parent);
        }
Ejemplo n.º 8
0
        public void Children_With_Examine()
        {
            var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetRequiredService <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService());

            using (var luceneDir = new RandomIdRamDirectory())
                using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, HostingEnvironment, RuntimeState, luceneDir,
                                                                        validator: new ContentValueSetValidator(true)))
                    using (indexer.ProcessNonAsync())
                    {
                        rebuilder.RegisterIndex(indexer.Name);
                        rebuilder.Populate(indexer);

                        var searcher = indexer.GetSearcher();
                        var ctx      = GetUmbracoContext("/test");
                        var cache    = new PublishedMediaCache(ServiceContext.MediaService, ServiceContext.UserService, searcher, new DictionaryAppCache(), ContentTypesCache, Factory.GetRequiredService <IEntityXmlSerializer>(), Factory.GetRequiredService <IUmbracoContextAccessor>());

                        //we are using the media.xml media to test the examine results implementation, see the media.xml file in the ExamineHelpers namespace
                        var publishedMedia = cache.GetById(1111);
                        var rootChildren   = publishedMedia.Children(VariationContextAccessor);
                        Assert.IsTrue(rootChildren.Select(x => x.Id).ContainsAll(new[] { 2222, 1113, 1114, 1115, 1116 }));

                        var publishedChild1 = cache.GetById(2222);
                        var subChildren     = publishedChild1.Children(VariationContextAccessor);
                        Assert.IsTrue(subChildren.Select(x => x.Id).ContainsAll(new[] { 2112 }));
                    }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Shared with PublishMediaStoreTests
        /// </summary>
        /// <param name="id"></param>
        /// <param name="umbracoContext"></param>
        /// <returns></returns>
        internal IPublishedContent GetNode(int id, UmbracoContext umbracoContext)
        {
            var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
            var doc   = cache.GetById(id);

            Assert.IsNotNull(doc);
            return(doc);
        }
Ejemplo n.º 10
0
        public void Detects_Error_In_Xml()
        {
            var errorXml = new XElement("error", string.Format("No media is maching '{0}'", 1234));
            var nav      = errorXml.CreateNavigator();

            var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
            var converted      = publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/"), 1234);

            Assert.IsNull(converted);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Shared with PublishMediaStoreTests
        /// </summary>
        /// <param name="id"></param>
        /// <param name="umbracoContext"></param>
        /// <returns></returns>
        internal IPublishedContent GetNode(int id, UmbracoContext umbracoContext)
        {
            var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null),
                                                ServiceContext.MediaService, ServiceContext.UserService, new DictionaryAppCache(), ContentTypesCache,
                                                Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());
            var doc = cache.GetById(id);

            Assert.IsNotNull(doc);
            return(doc);
        }
Ejemplo n.º 12
0
        public void Detects_Error_In_Xml()
        {
            var errorXml = new XElement("error", string.Format("No media is maching '{0}'", 1234));
            var nav      = errorXml.CreateNavigator();

            var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new DictionaryAppCache(), ContentTypesCache, Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());
            var converted      = publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/"), 1234);

            Assert.IsNull(converted);
        }
        public void Detects_Error_In_Xml()
        {
            var errorXml = new XElement("error", string.Format("No media is maching '{0}'", 1234));
            var nav      = errorXml.CreateNavigator();

            var publishedMedia = new PublishedMediaCache(ApplicationContext);
            var converted      = publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/"), 1234);

            Assert.IsNull(converted);
        }
Ejemplo n.º 14
0
        public void Convert_From_XPath_Navigator()
        {
            var xmlDoc    = GetMediaXml();
            var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
            var cache     = new PublishedMediaCache();
            var doc       = cache.ConvertFromXPathNavigator(navigator);

            DoAssert(doc, 2000, 0, 2, "image1", "Image", 2044, "Shannon", "Shannon2", 22, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
            Assert.AreEqual(null, doc.Parent);
            Assert.AreEqual(2, doc.Children.Count());
            Assert.AreEqual(2001, doc.Children.ElementAt(0).Id);
            Assert.AreEqual(2002, doc.Children.ElementAt(1).Id);
        }
Ejemplo n.º 15
0
        private static void ClearCache(params JsonPayload[] payloads)
        {
            if (payloads == null)
            {
                return;
            }

            ApplicationContext.Current.ApplicationCache.ClearPartialViewCache();

            foreach (var payload in payloads)
            {
                if (payload.Operation == OperationType.Deleted)
                {
                    ApplicationContext.Current.Services.IdkMap.ClearCache(payload.Id);
                }

                var mediaCache = ApplicationContext.Current.ApplicationCache.IsolatedRuntimeCache.GetCache <IMedia>();

                //if there's no path, then just use id (this will occur on permanent deletion like emptying recycle bin)
                if (payload.Path.IsNullOrWhiteSpace())
                {
                    ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheByKeySearch(
                        string.Format("{0}_{1}", CacheKeys.MediaCacheKey, payload.Id));
                }
                else
                {
                    foreach (var idPart in payload.Path.Split(','))
                    {
                        int idPartAsInt;
                        if (int.TryParse(idPart, out idPartAsInt) && mediaCache)
                        {
                            mediaCache.Result.ClearCacheItem(RepositoryBase.GetCacheIdKey <IMedia>(idPartAsInt));
                        }

                        ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheByKeySearch(
                            string.Format("{0}_{1}_True", CacheKeys.MediaCacheKey, idPart));

                        // Also clear calls that only query this specific item!
                        if (idPart == payload.Id.ToString(CultureInfo.InvariantCulture))
                        {
                            ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheByKeySearch(
                                string.Format("{0}_{1}", CacheKeys.MediaCacheKey, payload.Id));
                        }
                    }
                }

                // published cache...
                PublishedMediaCache.ClearCache(payload.Id);
            }
        }
Ejemplo n.º 16
0
        public void Get_Root_Docs()
        {
            var user    = ServiceContext.UserService.GetUserById(0);
            var mType   = MakeNewMediaType(user, "TestMediaType");
            var mRoot1  = MakeNewMedia("MediaRoot1", mType, user, -1);
            var mRoot2  = MakeNewMedia("MediaRoot2", mType, user, -1);
            var mChild1 = MakeNewMedia("Child1", mType, user, mRoot1.Id);
            var mChild2 = MakeNewMedia("Child2", mType, user, mRoot2.Id);

            var ctx   = GetUmbracoContext("/test");
            var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
            var roots = cache.GetAtRoot();

            Assert.AreEqual(2, roots.Count());
            Assert.IsTrue(roots.Select(x => x.Id).ContainsAll(new[] { mRoot1.Id, mRoot2.Id }));
        }
Ejemplo n.º 17
0
        public void Get_Root_Docs()
        {
            var user    = ServiceContext.UserService.GetUserById(0);
            var mType   = MakeNewMediaType(user, "TestMediaType");
            var mRoot1  = MakeNewMedia("MediaRoot1", mType, user, -1);
            var mRoot2  = MakeNewMedia("MediaRoot2", mType, user, -1);
            var mChild1 = MakeNewMedia("Child1", mType, user, mRoot1.Id);
            var mChild2 = MakeNewMedia("Child2", mType, user, mRoot2.Id);

            var ctx   = GetUmbracoContext("/test");
            var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new DictionaryAppCache(), ContentTypesCache, Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());
            var roots = cache.GetAtRoot();

            Assert.AreEqual(2, roots.Count());
            Assert.IsTrue(roots.Select(x => x.Id).ContainsAll(new[] { mRoot1.Id, mRoot2.Id }));
        }
Ejemplo n.º 18
0
        public void Convert_From_XPath_Navigator()
        {
            var ctx = GetUmbracoContext("/test");
            var key = Guid.NewGuid();

            var xmlDoc = GetMediaXml();

            ((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString());
            var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
            var cache     = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
            var doc       = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true));

            DoAssert(doc, 2000, key, templateIdVal: null, 2, "image1", "Image", 23, "Shannon", "Shannon", 33, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
            Assert.AreEqual(null, doc.Parent);
            Assert.AreEqual(2, doc.Children.Count());
            Assert.AreEqual(2001, doc.Children.ElementAt(0).Id);
            Assert.AreEqual(2002, doc.Children.ElementAt(1).Id);
        }
Ejemplo n.º 19
0
        public void Convert_From_XPath_Navigator()
        {
            var ctx = GetUmbracoContext("/test");
            var key = Guid.NewGuid();

            var xmlDoc = GetMediaXml();

            ((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString());
            var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
            var cache     = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null, HostingEnvironment), ServiceContext.MediaService, ServiceContext.UserService, new DictionaryAppCache(), ContentTypesCache, Factory.GetRequiredService <IEntityXmlSerializer>(), Factory.GetRequiredService <IUmbracoContextAccessor>(), VariationContextAccessor);
            var doc       = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true));

            DoAssert(doc, 2000, key, null, 2, "image1", "Image", 23, "Shannon", "Shannon", "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
            Assert.AreEqual(null, doc.Parent);
            Assert.AreEqual(2, doc.Children.Count());
            Assert.AreEqual(2001, doc.Children.ElementAt(0).Id);
            Assert.AreEqual(2002, doc.Children.ElementAt(1).Id);
        }
Ejemplo n.º 20
0
        public void Do_Not_Find_In_Recycle_Bin()
        {
            var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService());

            using (var luceneDir = new RandomIdRamDirectory())
                using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir,
                                                                        //include unpublished content since this uses the 'internal' indexer, it's up to the media cache to filter
                                                                        validator: new ContentValueSetValidator(false)))
                    using (indexer.ProcessNonAsync())
                    {
                        rebuilder.RegisterIndex(indexer.Name);
                        rebuilder.Populate(indexer);

                        var searcher = indexer.GetSearcher();
                        var ctx      = GetUmbracoContext("/test");
                        var cache    = new PublishedMediaCache(ServiceContext.MediaService, ServiceContext.UserService, searcher, new DictionaryAppCache(), ContentTypesCache, Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());

                        //ensure it is found
                        var publishedMedia = cache.GetById(3113);
                        Assert.IsNotNull(publishedMedia);

                        //move item to recycle bin
                        var newXml = XElement.Parse(@"<node id='3113' key='5b3e46ab-3e37-4cfa-ab70-014234b5bd33' parentID='-21' level='1' writerID='0' nodeType='1032' template='0' sortOrder='2' createDate='2010-05-19T17:32:46' updateDate='2010-05-19T17:32:46' nodeName='Another Umbraco Image' urlName='acnestressscrub' writerName='Administrator' nodeTypeAlias='Image' path='-1,-21,3113'>
                    <data alias='umbracoFile'><![CDATA[/media/1234/blah.pdf]]></data>
                    <data alias='umbracoWidth'>115</data>
                    <data alias='umbracoHeight'>268</data>
                    <data alias='umbracoBytes'>10726</data>
                    <data alias='umbracoExtension'>jpg</data>
                </node>");
                        indexer.IndexItems(new[] { newXml.ConvertToValueSet("media") });


                        //ensure it still exists in the index (raw examine search)
                        var criteria = searcher.CreateQuery();
                        var filter   = criteria.Id(3113);
                        var found    = filter.Execute();
                        Assert.IsNotNull(found);
                        Assert.AreEqual(1, found.TotalItemCount);

                        //ensure it does not show up in the published media store
                        var recycledMedia = cache.GetById(3113);
                        Assert.IsNull(recycledMedia);
                    }
        }
        public void Convert_From_Standard_Xml()
        {
            var config = SettingsForTests.GenerateMockSettings();

            var contentMock = Mock.Get(config.Content);

            contentMock.Setup(x => x.UseLegacyXmlSchema).Returns(true);

            SettingsForTests.ConfigureSettings(config);

            var nodeId = 2112;

            var xml  = XElement.Parse(@"<Image id=""2112"" version=""5b3e46ab-3e37-4cfa-ab70-014234b5bd39"" parentID=""2222"" level=""3"" writerID=""0"" nodeType=""1032"" template=""0"" sortOrder=""1"" createDate=""2010-05-19T17:32:46"" updateDate=""2010-05-19T17:32:46"" nodeName=""Sam's Umbraco Image"" urlName=""acnestressscrub"" writerName=""Administrator"" nodeTypeAlias=""Image"" path=""-1,1111,2222,2112"" isDoc="""">
				<umbracoFile><![CDATA[/media/1234/blah.pdf]]></umbracoFile>
				<umbracoWidth>115</umbracoWidth>
				<umbracoHeight>268</umbracoHeight>
				<umbracoBytes>10726</umbracoBytes>
				<umbracoExtension>jpg</umbracoExtension>
				<Image id=""3113"" version=""5b3e46ab-3e37-4cfa-ab70-014234b5bd33"" parentID=""2112"" level=""4"" writerID=""0"" nodeType=""1032"" template=""0"" sortOrder=""2"" createDate=""2010-05-19T17:32:46"" updateDate=""2010-05-19T17:32:46"" nodeName=""Another Umbraco Image"" urlName=""acnestressscrub"" writerName=""Administrator"" nodeTypeAlias=""Image"" path=""-1,1111,2222,2112,3113"" isDoc="""">
					<umbracoFile><![CDATA[/media/1234/blah.pdf]]></umbracoFile>
					<umbracoWidth>115</umbracoWidth>
					<umbracoHeight>268</umbracoHeight>
					<umbracoBytes>10726</umbracoBytes>
					<umbracoExtension>jpg</umbracoExtension>
				</Image>
			</Image>"            );
            var node = xml.DescendantsAndSelf("Image").Single(x => (int)x.Attribute("id") == nodeId);

            var publishedMedia = new PublishedMediaCache(ApplicationContext);

            var nav = node.CreateNavigator();

            var converted = publishedMedia.CreateFromCacheValues(
                publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/Image"), nodeId));

            Assert.AreEqual(nodeId, converted.Id);
            Assert.AreEqual(3, converted.Level);
            Assert.AreEqual(1, converted.SortOrder);
            Assert.AreEqual("Sam's Umbraco Image", converted.Name);
            Assert.AreEqual("-1,1111,2222,2112", converted.Path);
        }
Ejemplo n.º 22
0
        public void Convert_From_XPath_Navigator(bool withKey)
        {
            var ctx = GetUmbracoContext("/test", 1234);
            var key = Guid.NewGuid();

            var xmlDoc = GetMediaXml();

            if (withKey)
            {
                ((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString());
            }
            var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
            var cache     = new PublishedMediaCache(ctx.Application);
            var doc       = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true));

            DoAssert(doc, 2000, withKey ? key : default(Guid), 0, 2, "image1", "Image", 2044, "Shannon", "Shannon2", 22, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
            Assert.AreEqual(null, doc.Parent);
            Assert.AreEqual(2, doc.Children.Count());
            Assert.AreEqual(2001, doc.Children.ElementAt(0).Id);
            Assert.AreEqual(2002, doc.Children.ElementAt(1).Id);
        }
Ejemplo n.º 23
0
        public void Convert_From_Search_Result()
        {
            var ctx = GetUmbracoContext("/test");
            var key = Guid.NewGuid();

            var fields = new Dictionary <string, string>
            {
                { "__IndexType", "media" },
                { "__NodeId", "1234" },
                { "__NodeTypeAlias", Constants.Conventions.MediaTypes.Image },
                { "__Path", "-1,1234" },
                { "__nodeName", "Test" },
                { "id", "1234" },
                { "key", key.ToString() },
                { "urlName", "/media/test.jpg" },
                { "nodeType", "0" },
                { "sortOrder", "0" },
                { "level", "2" },
                { "nodeName", "Test" },
                { "nodeTypeAlias", Constants.Conventions.MediaTypes.Image },
                { "parentID", "-1" },
                { "path", "-1,1234" },
                { "updateDate", DateTime.Parse("2012-07-16T10:34:09").Ticks.ToString() },
                { "createDate", DateTime.Parse("2012-07-17T10:34:09").Ticks.ToString() },
                { "creatorID", "0" },
                { "creatorName", "Shannon" }
            };

            var result = new SearchResult("1234", 1, () => fields.ToDictionary(x => x.Key, x => new List <string> {
                x.Value
            }));

            var store = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
            var doc   = store.CreateFromCacheValues(store.ConvertFromSearchResult(result));

            DoAssert(doc, 1234, key, templateIdVal: null, 0, "/media/test.jpg", "Image", 23, "Shannon", "Shannon", 0, 0, "-1,1234", DateTime.Parse("2012-07-17T10:34:09"), DateTime.Parse("2012-07-16T10:34:09"), 2);
            Assert.AreEqual(null, doc.Parent);
        }
Ejemplo n.º 24
0
        public void AncestorsOrSelf_With_Examine()
        {
            var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService());

            using (var luceneDir = new RandomIdRamDirectory())
                using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir,
                                                                        validator: new ContentValueSetValidator(true)))
                    using (indexer.ProcessNonAsync())
                    {
                        rebuilder.RegisterIndex(indexer.Name);
                        rebuilder.Populate(indexer);


                        var ctx      = GetUmbracoContext("/test");
                        var searcher = indexer.GetSearcher();
                        var cache    = new PublishedMediaCache(ServiceContext.MediaService, ServiceContext.UserService, searcher, new DictionaryAppCache(), ContentTypesCache, Factory.GetInstance <IEntityXmlSerializer>(), Factory.GetInstance <IUmbracoContextAccessor>());

                        //we are using the media.xml media to test the examine results implementation, see the media.xml file in the ExamineHelpers namespace
                        var publishedMedia = cache.GetById(3113);
                        var ancestors      = publishedMedia.AncestorsOrSelf();
                        Assert.IsTrue(ancestors.Select(x => x.Id).ContainsAll(new[] { 3113, 2112, 2222, 1111 }));
                    }
        }