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); }
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); } }
public SitecoreField <T> MediaUrlOptions(SitecoreMediaUrlOptions options) { Configuration.MediaUrlOptions = options; return(this); }