public void ResourceHandlerFactoryGetDllResource() { var factory = new ResourceHandlerFactory(); var p1 = new DllResourceProvider("http://localhost/dist/v0.0.1", "ViewExtensionLibraryTests", Assembly.GetExecutingAssembly() ); var p2 = new DllResourceProvider("http://localhost/dynamo", "ViewExtensionLibraryTests.resources.Dynamo.svg", Assembly.GetExecutingAssembly() ); factory.RegisterProvider("/dist/v0.0.1", p1); factory.RegisterProvider("/dynamo", p2); var req1 = new Mock <IRequest>(); req1.Setup(r => r.Url).Returns("http://localhost/dist/v0.0.1/resources/Dynamo.svg"); var req2 = new Mock <IRequest>(); req2.Setup(r => r.Url).Returns("http://localhost/dynamo"); var h1 = factory.GetResourceHandler(null, null, null, req1.Object); var h2 = factory.GetResourceHandler(null, null, null, req2.Object); Assert.IsNotNull(h1); Assert.IsNotNull(h2); Assert.IsTrue(factory.HasHandlers); Assert.AreEqual(2, factory.Handlers.Count); }
private FormGuide(string url, FormBrowser owner) { InitializeComponent(); Text = Program.BrandName + " Guide"; Size = new Size(owner.Size.Width * 3 / 4, owner.Size.Height * 3 / 4); VisibleChanged += (sender, args) => this.MoveToCenter(owner); ResourceHandlerFactory resourceHandlerFactory = new ResourceHandlerFactory(); resourceHandlerFactory.RegisterHandler(DummyPage); this.browser = new ChromiumWebBrowser(url) { MenuHandler = new ContextMenuGuide(owner), JsDialogHandler = new JavaScriptDialogHandler(), LifeSpanHandler = new LifeSpanHandler(), RequestHandler = new RequestHandlerBase(true), ResourceHandlerFactory = resourceHandlerFactory }; browser.LoadingStateChanged += browser_LoadingStateChanged; browser.FrameLoadEnd += browser_FrameLoadEnd; browser.BrowserSettings.BackgroundColor = (uint)BackColor.ToArgb(); browser.Dock = DockStyle.None; browser.Location = ControlExtensions.InvisibleLocation; browser.SetupZoomEvents(); Controls.Add(browser); Disposed += (sender, args) => { browser.Dispose(); }; }
public void ResourceHandlerFactoryRegistration() { var factory = new ResourceHandlerFactory(); var moqprovider = new Mock <ResourceProviderBase>(true, "http") { CallBase = true }; string extension = "txt"; factory.RegisterProvider("/test/myprovider", moqprovider.Object); var req = new Mock <IRequest>(); req.Setup(r => r.Url).Returns("http://domain/test/myprovider/xyz/abc"); var handler = factory.GetResourceHandler(null, null, null, req.Object); moqprovider.Verify(p => p.GetResource(req.Object, out extension)); Assert.IsNull(handler); }
public void ResourceHandlerFactoryReturnsValidHandler() { var factory = new ResourceHandlerFactory(); var moqprovider = new Mock <ResourceProviderBase>(false, "http") { CallBase = true }; string extension = "txt"; moqprovider.Setup(p => p.GetResource(It.IsAny <IRequest>(), out extension)).Returns(new MemoryStream()); factory.RegisterProvider("/test/myprovider", moqprovider.Object); var req = new Mock <IRequest>(); req.Setup(r => r.Url).Returns("http://domain/test/myprovider/xyz/abc"); var handler = factory.GetResourceHandler(null, null, null, req.Object); Assert.IsNotNull(handler); Assert.IsFalse(factory.HasHandlers); }
public void ResourceHandlerFactoryProviderDonotExist() { var factory = new ResourceHandlerFactory(); var moqprovider = new Mock <ResourceProviderBase>(true, "http") { CallBase = true }; string extension = "txt"; factory.RegisterProvider("/test/myprovider", moqprovider.Object); var req = new Mock <IRequest>(); //Request url doesn't match the registered base url req.Setup(r => r.Url).Returns("http://domain/test/xyz/abc"); var handler = factory.GetResourceHandler(null, null, null, req.Object); //Factory shouldn't be able to find a resource provider for given request //hence can't call GetResource on the given provider and returns null handler. moqprovider.Verify(p => p.GetResource(req.Object, out extension), Times.Never); Assert.IsNull(handler); }
private void InitializeResourceStreams(DynamoModel model, LibraryViewCustomization customization) { //TODO: Remove the parameter after testing. //For testing purpose. resourceFactory = new ResourceHandlerFactory(model.Logger); //Register the resource stream registered through the LibraryViewCustomization foreach (var item in customization.Resources) { OnResourceStreamRegistered(item.Key, item.Value); } //Setup the event handler for resource registration customization.ResourceStreamRegistered += OnResourceStreamRegistered; resourceFactory.RegisterProvider("/dist", new DllResourceProvider("http://localhost/dist", "Dynamo.LibraryUI.web.library")); resourceFactory.RegisterProvider(IconUrl.ServiceEndpoint, new IconResourceProvider(model.PathManager)); { var url = "http://localhost/library.html"; var resource = "Dynamo.LibraryUI.web.library.library.html"; var stream = LoadResource(resource); resourceFactory.RegisterHandler(url, ResourceHandler.FromStream(stream)); } //Register provider for node data resourceFactory.RegisterProvider("/loadedTypes", new NodeItemDataProvider(model.SearchModel)); //Register provider for layout spec resourceFactory.RegisterProvider("/layoutSpecs", new LayoutSpecProvider(customization, "Dynamo.LibraryUI.web.library.layoutSpecs.json")); //Setup the event observer for NodeSearchModel to update customization/spec provider. observer = SetupSearchModelEventsObserver(model.SearchModel, this, customization); //Register provider for searching node data resourceFactory.RegisterProvider(SearchResultDataProvider.serviceIdentifier, new SearchResultDataProvider(model.SearchModel)); }
protected FormNotificationBase(FormBrowser owner, bool enableContextMenu) { InitializeComponent(); this.owner = owner; this.owner.FormClosed += owner_FormClosed; ResourceHandlerFactory resourceHandlerFactory = new ResourceHandlerFactory(); resourceHandlerFactory.RegisterHandler(TwitterUtils.TweetDeckURL, this.resourceHandler); resourceHandlerFactory.RegisterHandler(TweetNotification.AppLogo); this.browser = new ChromiumWebBrowser("about:blank") { MenuHandler = new ContextMenuNotification(this, enableContextMenu), JsDialogHandler = new JavaScriptDialogHandler(), LifeSpanHandler = new LifeSpanHandler(), RequestHandler = new RequestHandlerBase(false), ResourceHandlerFactory = resourceHandlerFactory }; this.browser.Dock = DockStyle.None; this.browser.ClientSize = ClientSize; this.browser.SetupZoomEvents(); Controls.Add(browser); Disposed += (sender, args) => { this.browser.Dispose(); this.owner.FormClosed -= owner_FormClosed; }; DpiScale = this.GetDPIScale(); // ReSharper disable once VirtualMemberCallInContructor UpdateTitle(); }
public void CreateDllResourceProvider() { var factory = new ResourceHandlerFactory(); var p1 = new DllResourceProvider("http://localhost/dist/v0.0.1", "ViewExtensionLibraryTests", Assembly.GetExecutingAssembly() ); Assert.IsTrue(p1.IsStaticResource); Assert.AreEqual("http", p1.Scheme); string extension = "txt"; var req = new Mock <IRequest>(); req.Setup(r => r.Url).Returns("http://localhost/dist/v0.0.1/resources/Dynamo.svg"); var stream = p1.GetResource(req.Object, out extension); Assert.IsNotNull(stream); Assert.AreEqual("svg", extension); var size = stream.Length; var p2 = new DllResourceProvider("http://localhost/dynamo", "ViewExtensionLibraryTests.resources.Dynamo.svg", Assembly.GetExecutingAssembly() ); Assert.IsTrue(p1.IsStaticResource); Assert.AreEqual("http", p1.Scheme); req.Setup(r => r.Url).Returns("http://localhost/dynamo"); stream = p2.GetResource(req.Object, out extension); Assert.IsNotNull(stream); Assert.AreEqual("svg", extension); Assert.AreEqual(size, stream.Length); }