public void SetField_InternalLink_InternalLinkSetOnField()
        {
            //Assign
            var templateId = ID.NewID;
            var targetId   = ID.NewID;
            var fieldName  = "Field";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { fieldName, "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
            })
            {
                var mapper = new SitecoreFieldLinkMapper(new FakeUrlOptionsResolver());

#if SC93 || SC100
                var expected =
                    "<link target=\"testTarget\" title=\"test alternative\" querystring=\"q%3ds\" linktype=\"internal\" id=\"{0}\" anchor=\"testAnchor\" url=\"/en/sitecore/content/Target\" class=\"testClass\" text=\"Test description\" />"
                    .Formatted(targetId.Guid.ToString("B").ToUpperInvariant());
#else
                var expected =
                    "<link target=\"testTarget\" title=\"test alternative\" querystring=\"q%3ds\" linktype=\"internal\" id=\"{0}\" anchor=\"testAnchor\" url=\"/en/sitecore/content/Target.aspx\" class=\"testClass\" text=\"Test description\" />"
                    .Formatted(targetId.Guid.ToString("B").ToUpperInvariant());
#endif
                var item  = database.GetItem("/sitecore/content/Target");
                var field = item.Fields[fieldName];

                var value = new Link()
                {
                    Anchor   = "testAnchor",
                    Class    = "testClass",
                    Query    = "q=s",
                    Target   = "testTarget",
                    TargetId = targetId.Guid,
                    Text     = "Test description",
                    Title    = "test alternative",
                    Type     = LinkType.Internal,
                    Url      = ""
                };

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

                //Act
                using (new ItemEditing(item, true))
                {
                    mapper.SetField(field, value, null, null);
                }

                //Assert
                AssertHtml.AreHtmlElementsEqual(expected, field.Value, "link");
            }
        }
        public void SetField_MailToLink_MailToLinkSetOnField()
        {
            //Assign
            var templateId = ID.NewID;
            var targetId   = ID.NewID;
            var fieldName  = "Field";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { fieldName, "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
            })
            {
                var mapper   = new SitecoreFieldLinkMapper(new FakeUrlOptionsResolver());
                var expected =
                    "<link url=\"mailto:[email protected]\" text=\"Test description\" class=\"testClass\" title=\"test alternative\" linktype=\"mailto\" />";

                var item  = database.GetItem("/sitecore/content/Target");
                var field = item.Fields[fieldName];

                var value = new Link()
                {
                    Anchor   = "",
                    Class    = "testClass",
                    Query    = "",
                    Target   = "",
                    TargetId = Guid.Empty,
                    Text     = "Test description",
                    Title    = "test alternative",
                    Type     = LinkType.MailTo,
                    Url      = "mailto:[email protected]"
                };


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

                //Act
                using (new ItemEditing(item, true))
                {
                    mapper.SetField(field, value, null, null);
                }

                //Assert
                AssertHtml.AreHtmlElementsEqual(expected, field.Value, "link");
            }
        }
Exemple #3
0
        public void SetField_FileObjectPass_FieldPopulated()
        {
            //Assign
            var templateId = ID.NewID;
            var fieldId    = ID.NewID;
            var targetId   = ID.NewID;
            var mediaId    = new ID("{C10794CE-624F-4F72-A2B9-14336F3FB582}");

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { "Field", "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
                new DbItem("Media", mediaId)
            })
            {
                var expected =
                    "<file mediaid=\"{C10794CE-624F-4F72-A2B9-14336F3FB582}\" src=\"~/media/Test.ashx\" />";

                var item   = database.GetItem("/sitecore/content/Target");
                var field  = item.Fields["Field"];
                var mapper = new SitecoreFieldFileMapper();
                var file   = new File()
                {
                    Id = new Guid("{C10794CE-624F-4F72-A2B9-14336F3FB582}")
                };


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

                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");

                using (new Sitecore.FakeDb.Resources.Media.MediaProviderSwitcher(mediaProvider))
                {
                    //Act
                    using (new ItemEditing(item, true))
                    {
                        mapper.SetField(field, file, null, null);
                    }
                    //Assert
                }
                AssertHtml.AreHtmlElementsEqual(expected, item["Field"], "file");
            }
        }
        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\" />";

            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()
                {
                    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
                AssertHtml.AreHtmlElementsEqual(expected, field.Value, "image");
            }
        }
        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");
            }
        }
        public void SetField_MedialLink_MediaLinkSetOnField()
        {
            //Assign
            var templateId = ID.NewID;
            var targetId   = ID.NewID;
            var fieldName  = "Field";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { fieldName, "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
            })
            {
                var mapper   = new SitecoreFieldLinkMapper(new FakeUrlOptionsResolver());
                var expected =
                    "<link target=\"_blank\" title=\"test alternative\" linktype=\"media\" id=\"{0}\" url=\"Media.Aspx\" class=\"testClass\" text=\"Test description\" />"
                    .Formatted(targetId.Guid.ToString("B").ToUpperInvariant());



                var item  = database.GetItem("/sitecore/content/Target");
                var field = item.Fields[fieldName];

                var value = new Link()
                {
                    Anchor   = "",
                    Class    = "testClass",
                    Query    = "",
                    Target   = "_blank",
                    TargetId = targetId.Guid,
                    Text     = "Test description",
                    Title    = "test alternative",
                    Type     = LinkType.Media,
                    Url      = ""
                };


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


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

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

                mediaUrlProvider
                .GetMediaUrl(Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == targetId))
                .Returns("Media.Aspx");
#else
                Sitecore.Resources.Media.MediaProvider mediaProvider =
                    Substitute.For <Sitecore.Resources.Media.MediaProvider>();
                mediaProvider
                .GetMediaUrl(Arg.Is <Sitecore.Data.Items.MediaItem>(i => i.ID == targetId))
                .Returns("Media.Aspx");

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



                //Act
                using (new ItemEditing(item, true))
                {
                    mapper.SetField(field, value, null, null);
                }

                //Assert
                AssertHtml.AreHtmlElementsEqual(expected, field.Value, "link");
            }
        }