コード例 #1
0
        public void GetField_FieldIsEmpty_ReturnsNullImageObject()
        {
            //Assign
            var fieldValue = string.Empty;

            var item    = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldImageMapper/GetField");
            var field   = item.Fields[FieldName];
            var mapper  = new SitecoreFieldImageMapper();
            var service = Substitute.For <ISitecoreService>();

            service.Config = new Config();

            var context = new SitecoreDataMappingContext(null, null, service);


            using (new ItemEditing(item, true))
            {
                field.Value = fieldValue;
            }


            //Act
            var result = mapper.GetField(field, null, context) as Image;

            //Assert
            Assert.IsNull(result);
        }
コード例 #2
0
        public void GetField_ImageInField_ReturnsImageObject()
        {
            //Assign
            var fieldValue =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" mediapath=\"/Files/20121222_001405\" src=\"~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx\" hspace=\"15\" vspace=\"20\" />";
            var mediaId = new ID("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}");

            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
                {
                    new DbField(FieldName)
                    {
                        Value = fieldValue
                    }
                },
                new Sitecore.FakeDb.DbItem("MediaItem", mediaId)
                {
                    new DbField("alt")
                    {
                        Value = "test alt"
                    },
                    new DbField("height")
                    {
                        Value = "480"
                    },
                    new DbField("width")
                    {
                        Value = "640"
                    },
                }
            })
            {
                Sitecore.Resources.Media.MediaProvider mediaProvider = Substitute.For <Sitecore.Resources.Media.MediaProvider>();
                mediaProvider
                .GetMediaUrl(Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == mediaId))
                .Returns("/~/media/Test.ashx");

                using (new Sitecore.FakeDb.Resources.Media.MediaProviderSwitcher(mediaProvider))
                {
                    var item   = database.GetItem("/sitecore/content/TestItem");
                    var field  = item.Fields[FieldName];
                    var mapper = new SitecoreFieldImageMapper();

                    //Act
                    var result = mapper.GetField(field, null, null) as Image;

                    //Assert
                    Assert.AreEqual("test alt", result.Alt);
                    // Assert.Equals(null, result.Border);
                    Assert.AreEqual(string.Empty, result.Class);
                    Assert.AreEqual(15, result.HSpace);
                    Assert.AreEqual(480, result.Height);
                    Assert.AreEqual(new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"), result.MediaId);
                    Assert.IsTrue(result.Src.EndsWith("/~/media/Test.ashx"));
                    Assert.AreEqual(20, result.VSpace);
                    Assert.AreEqual(640, result.Width);
                }
            }
        }
コード例 #3
0
        public void GetField_FieldIsNull_ReturnsNullImageObject()
        {
            //Assign
            string fieldValue = null;

            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
                {
                    new DbField(FieldName)
                    {
                        Value = fieldValue
                    }
                }
            })
            {
                var item   = database.GetItem("/sitecore/content/TestItem");
                var field  = item.Fields[FieldName];
                var mapper = new SitecoreFieldImageMapper();

                var service = Substitute.For <ISitecoreService>();
                service.Config = new Config();

                var context = new SitecoreDataMappingContext(null, null, service);


                //Act
                var result = mapper.GetField(field, null, context) as Image;

                //Assert
                Assert.IsNull(result);
            }
        }
コード例 #4
0
        public void SetField_JustImageId_ReturnsPopulatedField()
        {
            //Assign
            var expected =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" alt=\"\" />";

            var item   = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldImageMapper/GetField");
            var field  = item.Fields[FieldName];
            var mapper = new SitecoreFieldImageMapper();
            var image  = new Image()
            {
                MediaId = new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"),
            };

            using (new ItemEditing(item, true))
            {
                field.Value = string.Empty;
            }

            //Act
            using (new ItemEditing(item, true))
            {
                mapper.SetField(field, image, null, null);
            }
            //Assert
            Assert.AreEqual(expected, field.Value);
        }
コード例 #5
0
        public void GetField_ImageInField_ReturnsImageObject()
        {
            //Assign
            var fieldValue =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" mediapath=\"/Files/20121222_001405\" src=\"~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx\" hspace=\"15\" vspace=\"20\" />";

            var item   = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldImageMapper/GetField");
            var field  = item.Fields[FieldName];
            var mapper = new SitecoreFieldImageMapper();

            using (new ItemEditing(item, true))
            {
                field.Value = fieldValue;
            }

            //Act
            var result = mapper.GetField(field, null, null) as Image;

            //Assert
            Assert.AreEqual("test alt", result.Alt);
            // Assert.Equals(null, result.Border);
            Assert.AreEqual(string.Empty, result.Class);
            Assert.AreEqual(15, result.HSpace);
            Assert.AreEqual(480, result.Height);
            Assert.AreEqual(new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"), result.MediaId);
            Assert.IsTrue(result.Src.EndsWith("/~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx"));
            Assert.AreEqual(20, result.VSpace);
            Assert.AreEqual(640, result.Width);
        }
コード例 #6
0
        public void SetField_ImagePassed_ReturnsPopulatedField()
        {
            //Assign
            var expected =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" width=\"640\" vspace=\"50\" height=\"480\" hspace=\"30\" alt=\"test alt\" />";

            var item   = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldImageMapper/GetField");
            var field  = item.Fields[FieldName];
            var mapper = new SitecoreFieldImageMapper();
            var image  = new Image()
            {
                Alt     = "test alt",
                HSpace  = 30,
                Height  = 480,
                MediaId = new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"),
                VSpace  = 50,
                Width   = 640,
                Border  = String.Empty,
                Class   = String.Empty
            };

            using (new ItemEditing(item, true))
            {
                field.Value = string.Empty;
            }

            //Act
            using (new ItemEditing(item, true))
            {
                mapper.SetField(field, image, null, null);
            }
            //Assert
            Assert.AreEqual(expected, field.Value);
        }
コード例 #7
0
        public void GetField_ImageInField_MissingMediaItem_ReturnsImageObjectWithSrc()
        {
            //Assign
            var fieldValue =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" mediapath=\"/Files/20121222_001405\" src=\"~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx\" hspace=\"15\" vspace=\"20\" />";
            var mediaId = new ID("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}");

            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
                {
                    new DbField(FieldName)
                    {
                        Value = fieldValue
                    }
                }
            })
            {
#if SC90 || SC91 || SC92
                var mediaUrlProvider = Substitute.For <BaseMediaManager>();

                SitecoreVersionAbstractions.MediaManager = new LazyResetable <BaseMediaManager>(() => mediaUrlProvider);

                mediaUrlProvider
                .GetMediaUrl(Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == mediaId), Arg.Any <MediaUrlOptions>())
                .Returns("/~/media/Test.ashx");
#else
                Sitecore.Resources.Media.MediaProvider mediaProvider =
                    Substitute.For <Sitecore.Resources.Media.MediaProvider>();
                mediaProvider
                .GetMediaUrl(Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == mediaId), Arg.Any <MediaUrlOptions>())
                .Returns("/~/media/Test.ashx");

                new Sitecore.FakeDb.Resources.Media.MediaProviderSwitcher(mediaProvider);
#endif



                var item   = database.GetItem("/sitecore/content/TestItem");
                var field  = item.Fields[FieldName];
                var mapper = new SitecoreFieldImageMapper();

                //Act
                var result = mapper.GetField(field, new SitecoreFieldConfiguration(), null) as Image;

                //Assert
                Assert.IsEmpty(result.Alt);
                // Assert.Equals(null, result.Border);
                Assert.AreEqual(string.Empty, result.Class);
                Assert.AreEqual(15, result.HSpace);
                Assert.AreEqual(0, result.Height);
                Assert.AreEqual(new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"), result.MediaId);
                Assert.IsTrue(string.IsNullOrEmpty(result.Src));
                Assert.AreEqual(20, result.VSpace);
                Assert.AreEqual(0, result.Width);
                Assert.AreEqual(false, result.MediaExists);
            }
        }
コード例 #8
0
        public override object GetField(Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            ImageWithOverlay      img           = new ImageWithOverlay();
            ImageWithOverlayField sitecoreImage = new ImageWithOverlayField(field);

            SitecoreFieldImageMapper.MapToImage(img, sitecoreImage);
            img.OverlayCoordinates = sitecoreImage.OverlayCoordinates;

            return(img);
        }
コード例 #9
0
        public override object GetFieldValue(string fieldValue, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            Item item = context.Service.Database.GetItem(new ID(fieldValue));

            if (item == null)
            {
                return(null);
            }

            MediaItem        imageItem = new MediaItem(item);
            ImageWithOverlay image     = new ImageWithOverlay();

            SitecoreFieldImageMapper.MapToImage(image, imageItem);
            image.OverlayCoordinates = Constants.OverlayDefaultCoordinates;
            return(image);
        }
コード例 #10
0
        public override void SetField(Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            ImageWithOverlay img = value as ImageWithOverlay;

            if (field == null || img == null)
            {
                return;
            }

            var item = field.Item;

            ImageWithOverlayField sitecoreImage = new ImageWithOverlayField(field);

            SitecoreFieldImageMapper.MapToField(sitecoreImage, img, item);
            sitecoreImage.OverlayCoordinates = img.OverlayCoordinates;
        }
コード例 #11
0
        public void GetField_FieldIsNull_ReturnsNullImageObject()
        {
            //Assign
            string fieldValue = null;

            var item   = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldImageMapper/GetField");
            var field  = item.Fields[FieldName];
            var mapper = new SitecoreFieldImageMapper();

            using (new ItemEditing(item, true))
            {
                field.Value = fieldValue;
            }

            //Act
            var result = mapper.GetField(field, null, null) as Image;

            //Assert
            Assert.IsNull(result);
        }
コード例 #12
0
        public void SetField_JustImageId_ReturnsPopulatedField()
        {
            //Assign
            var expected =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" />";

            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
                {
                    new DbField(FieldName)
                },
                new Sitecore.FakeDb.DbItem("MediaItem", new ID("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"))
            })
            {
                var item   = database.GetItem("/sitecore/content/TestItem");
                var field  = item.Fields[FieldName];
                var mapper = new SitecoreFieldImageMapper();
                var image  = new Image()
                {
                    MediaId = new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"),
                };

                using (new ItemEditing(item, true))
                {
                    field.Value = string.Empty;
                }

                //Act
                using (new ItemEditing(item, true))
                {
                    mapper.SetField(field, image, null, null);
                }
                //Assert
                AssertHtml.AreHtmlElementsEqual(expected, field.Value, "image");
            }
        }
コード例 #13
0
        public void GetField_FieldNotNull_ReturnsNullImageObject(
            SitecoreMediaUrlOptions option

            )
        {
            //Assign
            var config = new SitecoreFieldConfiguration();

            config.MediaUrlOptions = option;
            string expected   = "/~/media/Test.ashx";
            var    fieldValue =
                "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" mediapath=\"/Files/20121222_001405\" src=\"~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx\" hspace=\"15\" vspace=\"20\" />";
            var mediaId = new ID("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}");


            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
                {
                    new DbField(FieldName)
                    {
                        Value = fieldValue
                    }
                },
                new Sitecore.FakeDb.DbItem("MediaItem", mediaId)
                {
                    new DbField("alt")
                    {
                        Value = "test alt"
                    },
                    new DbField("height")
                    {
                        Value = "480"
                    },
                    new DbField("width")
                    {
                        Value = "640"
                    },
                }
            })
            {
                Func <MediaUrlOptions, bool> pred = x =>
                {
                    switch (option)
                    {
                    case SitecoreMediaUrlOptions.Default:
                        return(true);

                    case SitecoreMediaUrlOptions.RemoveExtension:
                        return(x.IncludeExtension == false);

                    case SitecoreMediaUrlOptions.LowercaseUrls:
                        return(x.LowercaseUrls == true);

                    default:
                        return(false);
                    }
                };



#if SC90 || SC91 || SC92
                var mediaUrlProvider = Substitute.For <BaseMediaManager>();

                SitecoreVersionAbstractions.MediaManager = new LazyResetable <BaseMediaManager>(() => mediaUrlProvider);

                mediaUrlProvider
                .GetMediaUrl(
                    Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == mediaId),
                    Arg.Is <MediaUrlOptions>(x => pred(x))
                    )
                .Returns(expected);
#else
                Sitecore.Resources.Media.MediaProvider mediaProvider =
                    Substitute.For <Sitecore.Resources.Media.MediaProvider>();
                mediaProvider
                .GetMediaUrl(
                    Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == mediaId),
                    Arg.Is <MediaUrlOptions>(x => pred(x))
                    )
                .Returns(expected);

                new Sitecore.FakeDb.Resources.Media.MediaProviderSwitcher(mediaProvider);
#endif


                var item   = database.GetItem("/sitecore/content/TestItem");
                var field  = item.Fields[FieldName];
                var mapper = new SitecoreFieldImageMapper();
                mapper.Setup(new DataMapperResolverArgs(null, config));
                //Act
                var result = mapper.GetField(field, config, null) as Image;

                //Assert
                Assert.AreEqual("test alt", result.Alt);
                // Assert.Equals(null, result.Border);
                Assert.AreEqual(string.Empty, result.Class);
                Assert.AreEqual(15, result.HSpace);
                Assert.AreEqual(480, result.Height);
                Assert.AreEqual(new Guid("{D897833C-1F53-4FAE-B54B-BB5B11B8F851}"), result.MediaId);
                Assert.IsTrue(result.Src.EndsWith(expected));
                Assert.AreEqual(20, result.VSpace);
                Assert.AreEqual(640, result.Width);
            }
        }