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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
        }