コード例 #1
0
        public virtual MediaUrlOptions GetMediaUrlOptions(SitecoreMediaUrlOptions mediaUrlOptions)
        {
            var defaultMediaUrl = MediaUrlOptions.Empty;

            if (mediaUrlOptions == 0)
            {
                return(defaultMediaUrl);
            }

            bool FlagCheck(SitecoreMediaUrlOptions option) => (mediaUrlOptions & option) == option;

            defaultMediaUrl.AbsolutePath           = !FlagCheck(SitecoreMediaUrlOptions.DisableAbsolutePath) && defaultMediaUrl.AbsolutePath;
            defaultMediaUrl.AllowStretch           = FlagCheck(SitecoreMediaUrlOptions.AllowStretch) || defaultMediaUrl.AllowStretch;
            defaultMediaUrl.AlwaysIncludeServerUrl = FlagCheck(SitecoreMediaUrlOptions.AlwaysIncludeServerUrl) || defaultMediaUrl.AlwaysIncludeServerUrl;
            defaultMediaUrl.DisableBrowserCache    = FlagCheck(SitecoreMediaUrlOptions.DisableBrowserCache) || defaultMediaUrl.DisableBrowserCache;
            defaultMediaUrl.DisableMediaCache      = FlagCheck(SitecoreMediaUrlOptions.DisableMediaCache) || defaultMediaUrl.DisableMediaCache;
            defaultMediaUrl.IgnoreAspectRatio      = FlagCheck(SitecoreMediaUrlOptions.IgnoreAspectRatio) || defaultMediaUrl.IgnoreAspectRatio;
            defaultMediaUrl.IncludeExtension       = !FlagCheck(SitecoreMediaUrlOptions.RemoveExtension) && defaultMediaUrl.IncludeExtension;
            defaultMediaUrl.LowercaseUrls          = FlagCheck(SitecoreMediaUrlOptions.LowercaseUrls) || defaultMediaUrl.LowercaseUrls;
            defaultMediaUrl.Thumbnail      = FlagCheck(SitecoreMediaUrlOptions.Thumbnail) || defaultMediaUrl.Thumbnail;
            defaultMediaUrl.UseDefaultIcon = FlagCheck(SitecoreMediaUrlOptions.UseDefaultIcon) || defaultMediaUrl.UseDefaultIcon;
            defaultMediaUrl.UseItemPath    = FlagCheck(SitecoreMediaUrlOptions.UseItemPath) || defaultMediaUrl.UseItemPath;

            // defaultMediaUrl.BackgroundColor
            // defaultMediaUrl.Database
            // defaultMediaUrl.Height
            // defaultMediaUrl.DefaultIcon
            // defaultMediaUrl.ItemRevision
            //defaultMediaUrl.Language;
            //defaultMediaUrl.MaxHeight;
            //defaultMediaUrl.MaxWidth;
            //defaultMediaUrl.MediaLinkServerUrl;
            //defaultMediaUrl.RequestExtension;
            //defaultMediaUrl.Scale;
            //defaultMediaUrl.Version;
            //defaultMediaUrl.VirtualFolder;
            //defaultMediaUrl.Width;

            return(defaultMediaUrl);
        }
コード例 #2
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);
            }
        }
コード例 #3
0
 public SitecoreField <T> MediaUrlOptions(SitecoreMediaUrlOptions options)
 {
     Configuration.MediaUrlOptions = options;
     return(this);
 }