Beispiel #1
0
 public DirectUrlInjector(IHost host, IUrlParser parser, IContentItemRepository repository, IDefinitionManager definitions)
 {
     this.host = host;
     this.parser = parser;
     this.repository = repository;
     this.definitions = definitions;
 }
Beispiel #2
0
 public ChildrenAjaxService(AjaxRequestDispatcher dispatcher, Navigator navigator, VirtualNodeFactory nodes, IUrlParser urls)
 {
     this.dispatcher = dispatcher;
     this.navigator  = navigator;
     this.nodes      = nodes;
     this.urls       = urls;
 }
        public override void SetUp()
        {
            base.SetUp();

            root = CreateOneItem <PageItem>(1, "root", null);
            one  = CreateOneItem <CustomExtensionItem>(2, "one", root);
            two  = CreateOneItem <PageItem>(3, "two", one);
            CreateOneItem <DataItem>(4, "four", root);
            three = CreateOneItem <PageItem>(5, "three.3", root);

            webContext = new FakeWebContextWrapper();
            var hostSection = new HostSection {
                Web = new WebElement {
                    Rewrite = rewriteMethod
                }
            };

            parser       = new UrlParser(persister, webContext, new Host(webContext, root.ID, root.ID), hostSection);
            errorHandler = new FakeErrorHandler();
            engine       = new FakeEngine();
            engine.Container.AddComponentInstance(null, typeof(IWebContext), webContext);
            adapterProvider = new ContentAdapterProvider(engine, new AppDomainTypeFinder());
            adapterProvider.Start();

            ReCreateDispatcherWithConfig(hostSection);
        }
Beispiel #4
0
 /// <summary>
 /// constructs a worker instance with specified components
 /// </summary>
 /// <param name="provider">URL string provider</param>
 /// <param name="parser">URL scheme parser</param>
 /// <param name="writer">URL schemes writer</param>
 /// <param name="logger">bad URLs logger</param>
 public UrlWorker(IUrlProvider provider, IUrlParser <TScheme> parser, IUrlWriter <TScheme> writer, IUrlLogger logger)
 {
     this.provider = provider;
     this.parser   = parser;
     this.writer   = writer;
     this.logger   = logger;
 }
Beispiel #5
0
 public TopicEndPoint(ForumSettings settings, IHttpClient httpClient)
     : base("topic", settings.RootURL, httpClient)
 {
     _theme     = settings.Theme;
     _parser    = new TopicParser();
     _urlParser = settings.UrlParser;
 }
Beispiel #6
0
 public IntegrityManager(IContentTypeManager contentTypeManager, IUrlParser urlParser, ILanguageManager languageManager, AdminSection adminSection)
 {
     _contentTypeManager = contentTypeManager;
     _urlParser = urlParser;
     _languageManager = languageManager;
     _adminConfig = adminSection;
 }
        public RedirectProcessor(
            IConfiguration configuration,
            IUrlHelper urlHelper,
            IHttpClient httpClient,
            IUrlParser urlParser,
            IUrlFormatter urlFormatter,
            IRedirectHelper redirectHelper)
        {
            _configuration  = configuration;
            _urlHelper      = urlHelper;
            _httpClient     = httpClient;
            _urlParser      = urlParser;
            _urlFormatter   = urlFormatter;
            _redirectHelper = redirectHelper;

            _oldUrlRedirectIndex = new Dictionary <string, IParsedRedirect>(
                StringComparer.OrdinalIgnoreCase);
            _responseCache   = new Dictionary <string, HttpResponse>();
            _results         = new List <IResult>();
            _skipResultTypes = new List <string>
            {
                ResultTypes.InvalidResult,
                ResultTypes.IdenticalResult,
                ResultTypes.ExcludedRedirect
            };
        }
 public ChildrenAjaxService(AjaxRequestDispatcher dispatcher, Navigator navigator, VirtualNodeFactory nodes, IUrlParser urls)
 {
     this.dispatcher = dispatcher;
     this.navigator = navigator;
     this.nodes = nodes;
     this.urls = urls;
 }
        public DiagnosticController(IContentItemRepository repository, IHost host, IDefinitionManager definitions,
            ILinkGenerator linkGenerator, IUrlParser parser, DatabaseSection config, IFlushable flushable, IReplicationStorage repstore, 
            IFileSystemFactory fileSystemFactory)
        {
            _repository = repository;
            _host = host;
            _definitions = definitions;
            _linkGenerator = linkGenerator;
            _parser = parser;
            _flushable = flushable;
            _tablePrefix = config.TablePrefix;

            _repstore = repstore;

            if (_forceWriteLockManager != null) return;

            // Create Force Write Lock Manager
            var storageConfig = (FileSystemNamespace) Enum.Parse(typeof (FileSystemNamespace),
                ConfigurationManager.AppSettings["AzureReplicationStorageContainerName"] ??
                "ReplicationStorageDebug");

            var fileSystem = fileSystemFactory.Create(storageConfig);
            _forceWriteLockManager = new ReplicationForceWriteLockManager(fileSystem);
            _writeLockManager = new ReplicationWriteLockManager(fileSystem);
        }
Beispiel #10
0
        private List <Topic> ParseTopics(HtmlNode boardMainFrame, ISmfTheme theme, IUrlParser urlParser)
        {
            var topics = new List <Topic>();

            var topicNodes = boardMainFrame.SelectNodes(theme.BoardTopicModel);

            if (topicNodes == null)
            {
                return(topics);
            }

            foreach (var topicNode in topicNodes)
            {
                var urlNode = topicNode.SelectSingleNode(theme.BoardTopicLink);

                string topicURL = urlNode.Attributes["href"].Value;
                int    id       = urlParser.FromURL(topicURL, "topic");

                string name = urlNode.InnerText.Trim();

                topics.Add(new Topic(id, name));
            }

            return(topics);
        }
Beispiel #11
0
 public ProtocolHandler(string uri, IUrlParser urlParser, ProtocolConfig protocolConfig, IOsServices osServices)
 {
     Uri            = uri;
     Parser         = urlParser;
     OsServices     = osServices;
     ProtocolConfig = protocolConfig;
 }
Beispiel #12
0
        internal static ContentItem Deserialize(Importer importer, IUrlParser parser, string xml)
        {
            var journal = importer.Read(new StringReader(xml));

            foreach (var link in journal.UnresolvedLinks.Where(ul => ul.IsChild == false))
            {
                var item = importer.Persister.Get(link.ReferencedItemID);
                if (item != null)
                {
                    link.Setter(item);
                }
            }
            foreach (var item in journal.ReadItems)
            {
                (item as IInjectable <IUrlParser>).Set(parser);
            }

            if (journal.RootItem.VersionOf.HasValue && journal.RootItem.VersionOf.Value != null)
            {
                journal.RootItem.Parent = journal.RootItem.VersionOf.Parent;
            }

            ReorderBySortOrderRecursive(journal.RootItem);

            return(journal.RootItem);
        }
Beispiel #13
0
 public ProtocolHandler(string uri, IUrlParser urlParser, ApplicationConfig applicationConfig, IOsServices osServices)
 {
     Uri               = uri;
     Parser            = urlParser;
     OsServices        = osServices;
     ApplicationConfig = applicationConfig;
 }
		public override void SetUp()
		{
			base.SetUp();

			finder = new FakeTypeFinder(typeof(XmlableItem).Assembly, typeof(XmlableItem), typeof(XmlableItem2));
			notifier = mocks.Stub<IItemNotifier>();
			mocks.Replay(notifier);

			activator = new ContentActivator(new N2.Edit.Workflow.StateChanger(), notifier, new InterceptingProxyFactory());
			definitions = new DefinitionManager(
				new[] {new DefinitionProvider(new DefinitionBuilder(new DefinitionMap(), 
					finder, 
					new TransformerBase<IUniquelyNamed>[0],
					TestSupport.SetupEngineSection()))}, 
				activator, new StateChanger(), new DefinitionMap());
			definitions.Start();
			parser = mocks.StrictMock<IUrlParser>();
			Expect.On(parser)
				.Call(parser.BuildUrl(null))
				.IgnoreArguments()
				.Do(new BuildUrl(delegate(ContentItem itemToBuild)
									{
										string url = "/" + itemToBuild.Name + ".aspx";
										foreach (ContentItem parent in Find.EnumerateParents(itemToBuild, null))
										{
											if (parent.Parent != null)
												url = "/" + parent.Name + url;
										}
										return url.ToUrl();
									}))
				.Repeat.Any();
			mocks.Replay(parser);

			persister = TestSupport.SetupFakePersister();
		}
        public override void SetUp()
        {
            base.SetUp();

            finder = new FakeTypeFinder(typeof(XmlableItem).Assembly, typeof(XmlableItem), typeof(XmlableItem2));
            notifier = mocks.Stub<IItemNotifier>();
            mocks.Replay(notifier);

            activator = new ContentActivator(new N2.Edit.Workflow.StateChanger(), notifier, new InterceptingProxyFactory());
            definitions = new DefinitionManager(
                new[] {new DefinitionProvider(new DefinitionBuilder(new DefinitionMap(), 
                    finder, 
                    new TransformerBase<IUniquelyNamed>[0],
                    TestSupport.SetupEngineSection()))}, 
                activator, new StateChanger(), new DefinitionMap());
            definitions.Start();
            parser = mocks.StrictMock<IUrlParser>();
            Expect.On(parser)
                .Call(parser.BuildUrl(null))
                .IgnoreArguments()
                .Do(new BuildUrl(delegate(ContentItem itemToBuild)
                                    {
                                        string url = "/" + itemToBuild.Name + ".aspx";
                                        foreach (ContentItem parent in Find.EnumerateParents(itemToBuild, null))
                                        {
                                            if (parent.Parent != null)
                                                url = "/" + parent.Name + url;
                                        }
                                        return url.ToUrl();
                                    }))
                .Repeat.Any();
            mocks.Replay(parser);

            persister = TestSupport.SetupFakePersister();
        }
Beispiel #16
0
        public DiagnosticController(IContentItemRepository repository, IHost host, IDefinitionManager definitions,
                                    ILinkGenerator linkGenerator, IUrlParser parser, DatabaseSection config, IFlushable flushable, IReplicationStorage repstore,
                                    IFileSystemFactory fileSystemFactory)
        {
            _repository    = repository;
            _host          = host;
            _definitions   = definitions;
            _linkGenerator = linkGenerator;
            _parser        = parser;
            _flushable     = flushable;
            _tablePrefix   = config.TablePrefix;

            _repstore = repstore;

            if (_forceWriteLockManager != null)
            {
                return;
            }

            // Create Force Write Lock Manager
            var storageConfig = (FileSystemNamespace)Enum.Parse(typeof(FileSystemNamespace),
                                                                ConfigurationManager.AppSettings["AzureReplicationStorageContainerName"] ??
                                                                "ReplicationStorageDebug");

            var fileSystem = fileSystemFactory.Create(storageConfig);

            _forceWriteLockManager = new ReplicationForceWriteLockManager(fileSystem);
            _writeLockManager      = new ReplicationWriteLockManager(fileSystem);
        }
 public CachingUrlParserDecorator(IUrlParser inner, IPersister persister, IWebContext webContext, CacheWrapper cache)
 {
     this.inner = inner;
     this.persister = persister;
     this.webContext = webContext;
     this.cache = cache;
 }
Beispiel #18
0
 public DirectUrlInjector(IHost host, IUrlParser parser, IContentItemRepository repository, IDefinitionManager definitions)
 {
     this.host        = host;
     this.parser      = parser;
     this.repository  = repository;
     this.definitions = definitions;
 }
Beispiel #19
0
 public CachingUrlParserDecorator(IUrlParser inner, IPersister persister, IWebContext webContext, CacheWrapper cache)
 {
     this.inner      = inner;
     this.persister  = persister;
     this.webContext = webContext;
     this.cache      = cache;
 }
Beispiel #20
0
 public ChildrenAjaxService(Navigator navigator, VirtualNodeFactory virtualNodes, IContentAdapterProvider adapters, IUrlParser urls)
 {
     this.navigator = navigator;
     this.virtualNodes = virtualNodes;
     this.adapters = adapters;
     this.urls = urls;
 }
Beispiel #21
0
 public BoardEndPoint(ForumSettings settings, IHttpClient httpClient)
     : base("board", settings.RootURL, httpClient)
 {
     _theme     = settings.Theme;
     _parser    = new BoardParser();
     _urlParser = settings.UrlParser;
 }
Beispiel #22
0
 public ChildrenAjaxService(Navigator navigator, VirtualNodeFactory virtualNodes, IContentAdapterProvider adapters, IUrlParser urls)
 {
     this.navigator    = navigator;
     this.virtualNodes = virtualNodes;
     this.adapters     = adapters;
     this.urls         = urls;
 }
Beispiel #23
0
 public ContentVersionRepository(IRepository <ContentVersion> repository, Exporter exporter, Importer importer, IUrlParser parser, IProxyFactory proxyFactory)
 {
     this.Repository   = repository;
     this.exporter     = exporter;
     this.importer     = importer;
     this.parser       = parser;
     this.proxyFactory = proxyFactory;
 }
 public DirectUrlInjector(IHost host, IUrlParser parser, IContentItemRepository repository, IDefinitionManager definitions, Configuration.EngineSection config)
 {
     this.host        = host;
     this.parser      = parser;
     this.repository  = repository;
     this.definitions = definitions;
     this.enabled     = config.DirectUrlInjector.Enabled;
 }
 public CachingUrlParserDecorator(IUrlParser inner, IPersister persister, IWebContext webContext, CacheWrapper cache, HostSection config)
 {
     this.inner        = inner;
     this.persister    = persister;
     this.webContext   = webContext;
     this.cache        = cache;
     SlidingExpiration = config.OutputCache.SlidingExpiration ?? TimeSpan.FromMinutes(15);
 }
 public CachingUrlParserDecorator(IUrlParser inner, IPersister persister, IWebContext webContext, CacheWrapper cache, HostSection config)
 {
     this.inner = inner;
     this.persister = persister;
     this.webContext = webContext;
     this.cache = cache;
     SlidingExpiration = config.OutputCache.SlidingExpiration ?? TimeSpan.FromMinutes(15);
 }
 public ContentVersionRepository(IRepository<ContentVersion> repository, Exporter exporter, Importer importer, IUrlParser parser, IProxyFactory proxyFactory)
 {
     this.Repository = repository;
     this.exporter = exporter;
     this.importer = importer;
     this.parser = parser;
     this.proxyFactory = proxyFactory;
 }
Beispiel #28
0
        internal static ContentItem Deserialize(Importer importer, IUrlParser parser, string xml)
        {
            if (importer == null)
            {
                throw new ArgumentException("Importer cannot be null.", "importer");
            }

            if (parser == null)
            {
                throw new ArgumentException("Parser cannot be null.", "parser");
            }

            if (String.IsNullOrEmpty(xml))
            {
                return(null); // nothing to deserialize
            }
            var journal = importer.Read(new StringReader(xml));

            foreach (var link in journal.UnresolvedLinks.Where(ul => ul.IsChild == false))
            {
                var item = importer.Persister.Get(link.ReferencedItemID);
                if (item != null)
                {
                    link.Setter(item);
                }
            }

            if (journal.ReadItems == null)
            {
                throw new Exception("Journal couldn't read items due to journal.ReadItems == null. " + xml);
            }

            try
            {
                foreach (var item in journal.ReadItems)
                {
                    (item as IInjectable <IUrlParser>).Set(parser);
                }
            }
            catch (NullReferenceException nilX)
            {
                throw new Exception("Ran into a null reference while attempting to read items from the journal: " + xml, nilX);
            }

            if (journal.RootItem == null)
            {
                return(null);
            }

            if (journal.RootItem.VersionOf.HasValue && journal.RootItem.VersionOf.Value != null)
            {
                journal.RootItem.Parent = journal.RootItem.VersionOf.Parent;
            }

            ReorderBySortOrderRecursive(journal.RootItem);

            return(journal.RootItem);
        }
Beispiel #29
0
 public ForumSettings(ISmfTheme theme, Uri rootURL, IUrlParser urlType)
 {
     DateFormat        = "yyyy-MM-dd, HH:mm::ss";
     Culture           = new CultureInfo("hu-HU");
     Theme             = theme;
     RootURL           = rootURL;
     UrlParser         = urlType;
     CustomHomePageURL = "";
 }
Beispiel #30
0
		public ItemXmlWriter(IDefinitionManager definitions, IUrlParser parser, IFileSystem fs)
		{
			if (definitions == null)
				throw new ArgumentNullException("definitions");

			this.definitions = definitions;
			this.parser = parser;
			this.fs = fs;
		}
 public RedirectParser(
     IConfiguration configuration,
     IUrlParser urlParser,
     IUrlFormatter urlFormatter)
 {
     _configuration = configuration;
     _urlParser     = urlParser;
     _urlFormatter  = urlFormatter;
 }
Beispiel #32
0
        public override void SetUp()
        {
            base.SetUp();

            wrapper = new FakeWebContextWrapper("http://www.n2cms.com/");

            host = new Host(wrapper, 1, 1);

            parser = CreateUrlParser();
        }
Beispiel #33
0
        public override void SetUp()
        {
            base.SetUp();

            wrapper = new FakeWebContextWrapper("http://www.n2cms.com/");

            host = new Host(wrapper, 1, 1);

            parser = CreateUrlParser();
        }
Beispiel #34
0
        public ItemXmlWriter(IDefinitionManager definitions, IUrlParser parser, IFileSystem fs)
        {
            if (definitions == null)
            {
                throw new ArgumentNullException("definitions");
            }

            this.definitions = definitions;
            this.parser      = parser;
            this.fs          = fs;
        }
Beispiel #35
0
        public EditUrlManager(IUrlParser parser, EditSection config)
        {
            this.parser = parser;

            ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/');
            EditTreeUrl            = config.Paths.EditTreeUrl;
            EditItemUrl            = config.Paths.EditItemUrl;
            EditInterfaceUrl       = config.Paths.EditInterfaceUrl;
            NewItemUrl             = config.Paths.NewItemUrl;
            DeleteItemUrl          = config.Paths.DeleteItemUrl;
            defaultViewPreference  = config.Versions.DefaultViewMode;
        }
 public AwsS3StaticWebsiteExporter(
     IConfiguration configuration,
     IUrlParser urlParser,
     IUrlFormatter urlFormatter)
 {
     this.configuration = configuration;
     this.urlParser     = urlParser;
     this.urlFormatter  = urlFormatter;
     headingSlashRegex  = new Regex(
         "^[/]+",
         RegexOptions.IgnoreCase | RegexOptions.Compiled);
 }
Beispiel #37
0
        public IdenticalProcessorTests()
        {
            var configuration =
                TestData.TestData.DefaultConfiguration;
            var urlFormatter = new UrlFormatter();

            _urlParser = new UrlParser();
            _urlHelper = new UrlHelper(
                configuration,
                _urlParser,
                urlFormatter);
        }
Beispiel #38
0
		public EditUrlManager(IUrlParser parser, EditSection config)
		{
            this.parser = parser;

			ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/');
			EditTreeUrl = config.Paths.EditTreeUrl;
			EditItemUrl = config.Paths.EditItemUrl;
			EditInterfaceUrl = config.Paths.EditInterfaceUrl;
			NewItemUrl = config.Paths.NewItemUrl;
			DeleteItemUrl = config.Paths.DeleteItemUrl;
			defaultViewPreference = config.Versions.DefaultViewMode;
		}
Beispiel #39
0
        public RedirectEngine(
            IConfiguration configuration,
            IUrlHelper urlHelper,
            IUrlParser urlParser,
            IUrlFormatter urlFormatter,
            IRedirectParser redirectParser,
            IHttpClient httpClient)
        {
            _configuration  = configuration;
            _urlHelper      = urlHelper;
            _urlParser      = urlParser;
            _redirectParser = redirectParser;
            _httpClient     = httpClient;
            Processors      = new List <IProcessor>
            {
                new InvalidProcessor(),
                new IdenticalProcessor(
                    _urlHelper),
                new DuplicateProcessor(
                    _configuration,
                    _urlHelper),
                new ExcludeProcessor(
                    _configuration),
                new RedirectProcessor(
                    _configuration,
                    _urlHelper,
                    _httpClient,
                    _urlParser,
                    urlFormatter,
                    new RedirectHelper(
                        _configuration,
                        _urlParser,
                        urlFormatter)
                    )
            };
            _redirects          = new List <IRedirect>();
            _parsedRedirects    = new List <IParsedRedirect>();
            _processedRedirects = new List <IProcessedRedirect>();
            _results            = new List <IResult>();
            _activeProcessors   = new List <IProcessor>();

            Exporters = new List <IExporter>
            {
                new WebConfigExporter(
                    _configuration,
                    _urlParser,
                    urlFormatter),
                new AwsS3StaticWebsiteExporter(
                    _configuration,
                    _urlParser,
                    urlFormatter)
            };
        }
Beispiel #40
0
        public void Process(IUrlParser parser, IEvaluator evaluator)
        {
            if (parser == null) throw new ArgumentNullException("parser");
            if (evaluator == null) throw new ArgumentNullException("evaluator");

            var words = parser.Parse(_url);
            var buzzwords = words.Where(evaluator.IsBuzzword);
            foreach (var buzzword in buzzwords)
            {
                ApplyEvent(new BuzzwordFoundEvent(buzzword));
            }
        }
		public override void SetUp()
		{
			base.SetUp();

			parser = mocks.StrictMock<IUrlParser>();
			mocks.ReplayAll();

			IntegrityManager integrity = new IntegrityManager(definitions, persister.Repository, parser);
			IntegrityEnforcer enforcer = new IntegrityEnforcer(persister, integrity, activator);
			enforcer.Start();

			new BehaviorInvoker(persister, new N2.Definitions.Static.DefinitionMap()).Start();
		}
 /// <summary>
 /// Initializes a new instance of the <see cref="BotActivityHandler"/> class.
 /// </summary>
 /// <param name="resourceProvider">Resource provider.</param>
 /// <param name="cardFactory">Card factory.</param>
 /// <param name="urlParser">Url parser.</param>
 /// <param name="appSettings">App settings.</param>
 /// <param name="logger">Logger.</param>
 public BotActivityHandler(
     IResourceProvider resourceProvider,
     ICardFactory cardFactory,
     IUrlParser urlParser,
     IAppSettings appSettings,
     ILogger <BotActivityHandler> logger)
 {
     this.resourceProvider = resourceProvider ?? throw new ArgumentNullException(nameof(resourceProvider));
     this.cardFactory      = cardFactory ?? throw new ArgumentNullException(nameof(cardFactory));
     this.urlParser        = urlParser ?? throw new ArgumentNullException(nameof(urlParser));
     this.appSettings      = appSettings ?? throw new ArgumentNullException(nameof(appSettings));
     this.logger           = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Beispiel #43
0
        public void Execute(Board board, string sourceCode, ISmfTheme theme, IUrlParser urlParser)
        {
            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(sourceCode);

            var boardMainFrameNode = htmlDoc.DocumentNode.SelectSingleNode(theme.BoardContainer);

            // TODO : This is good, when the board has only one page, but what if not?
            board.ChildBoards = ParseChildrenBoards(boardMainFrameNode, theme);

            board.Topics = ParseTopics(boardMainFrameNode, theme, urlParser);
        }
        public override void SetUp()
        {
            base.SetUp();

            parser = mocks.StrictMock <IUrlParser>();
            mocks.ReplayAll();

            IntegrityManager  integrity = new IntegrityManager(definitions, persister.Repository, parser);
            IntegrityEnforcer enforcer  = new IntegrityEnforcer(persister, integrity, activator);

            enforcer.Start();

            new BehaviorInvoker(persister, new N2.Definitions.Static.DefinitionMap()).Start();
        }
		public override void SetUp()
		{
			base.SetUp();

			parser = mocks.StrictMock<IUrlParser>();
			mocks.ReplayAll();

			finder = new FakeItemFinder(() => Enumerable.Empty<ContentItem>());

			IntegrityManager integrity = new IntegrityManager(definitions, finder, parser);
			IntegrityEnforcer enforcer = new IntegrityEnforcer(persister, integrity, activator);
			enforcer.Start();

			new BehaviorInvoker(persister, new N2.Definitions.Static.DefinitionMap()).Start();
		}
        public EditUrlManager(IUrlParser parser, EditSection config)
        {
            this.parser = parser;

            ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/');
            EditTreeUrl = config.Paths.EditTreeUrl;
            EditItemUrl = config.Paths.EditItemUrl;
            EditInterfaceUrl = config.Paths.EditInterfaceUrl;
            if (config.Legacy)
                EditInterfaceUrl += "Content/";
            NewItemUrl = config.Paths.NewItemUrl;
            DeleteItemUrl = config.Paths.DeleteItemUrl;
            defaultViewPreference = config.Versions.DefaultViewMode;
            MediaBrowserUrl = config.Paths.MediaBrowserUrl;
            ensureLocalhostPreviewUrls = config.Paths.EnsureLocalhostPreviewUrls;
        }
 public RequestPathProvider(IWebContext webContext, IUrlParser parser, IErrorNotifier errorHandler, HostSection config)
 {
     this.webContext = webContext;
     this.parser = parser;
     this.errorHandler = errorHandler;
     observeAllExtensions = config.Web.ObserveAllExtensions;
     rewriteEmptyExtension = config.Web.ObserveEmptyExtension;
     StringCollection additionalExtensions = config.Web.ObservedExtensions;
     if (additionalExtensions != null && additionalExtensions.Count > 0)
     {
         observedExtensions = new string[additionalExtensions.Count + 1];
         additionalExtensions.CopyTo(observedExtensions, 1);
     }
     observedExtensions[0] = config.Web.Extension;
     nonRewritablePaths = config.Web.Urls.NonRewritable.GetPaths(webContext);
 }
Beispiel #48
0
		public override void SetUp()
		{
			base.SetUp();

			var wrapper = new N2.Tests.Fakes.FakeWebContextWrapper();
			parser = TestSupport.Setup(persister, wrapper, new Host(wrapper, 1, 1));

			root = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(1, "root", null);
			item1 = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(2, "item1", root);
			item2 = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(3, "item2", root);

			var errorHandler = new FakeErrorHandler();
			var monitor = new N2.Plugin.ConnectionMonitor();
			tracker = new Tracker(persister, detailRepository = new FakeRepository<ContentDetail>(), parser, monitor, errorHandler, new EditSection());
			monitor.SetConnected(Installation.SystemStatusLevel.UpAndRunning);
		}
Beispiel #49
0
		public EditUrlManager(IUrlParser parser, EditSection config)
		{
			this.parser = parser;

			ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/');
			EditTreeUrl = config.Paths.EditTreeUrl;
			EditItemUrl = config.Paths.EditItemUrl;
			ImportLanguageItemUrl = config.Paths.ImportLanguageItemUrl;
			UpdateLanguageItemUrl = config.Paths.UpdateLanguageItemUrl;
			ExportLanguageItemUrl = config.Paths.ExportLanguageItemUrl;
			EditInterfaceUrl = config.Paths.EditInterfaceUrl;
			if (config.Legacy)
				EditInterfaceUrl += "Content/";
			NewItemUrl = config.Paths.NewItemUrl;
			DeleteItemUrl = config.Paths.DeleteItemUrl;
			defaultViewPreference = config.Versions.DefaultViewMode;
		}
Beispiel #50
0
        internal static ContentItem Deserialize(Importer importer, IUrlParser parser, string xml)
        {
            if (importer == null)
                throw new ArgumentException("Importer cannot be null.", "importer");
            
            if (parser == null)
                throw new ArgumentException("Parser cannot be null.", "parser");

            if (String.IsNullOrEmpty(xml))
                return null; // nothing to deserialize

            var journal = importer.Read(new StringReader(xml));
            foreach (var link in journal.UnresolvedLinks.Where(ul => ul.IsChild == false))
            {
                var item = importer.Persister.Get(link.ReferencedItemID);
                if (item != null)
                    link.Setter(item);
            }

            if (journal.ReadItems == null)
                throw new Exception("Journal couldn't read items due to journal.ReadItems == null. " + xml);

            try
            {
                foreach (var item in journal.ReadItems)
                    (item as IInjectable<IUrlParser>).Set(parser);
            }
            catch (NullReferenceException nilX)
            {
                throw new Exception("Ran into a null reference while attempting to read items from the journal: " + xml, nilX);
            }

            if (journal.RootItem == null)
                return null;

            if (journal.RootItem.VersionOf.HasValue && journal.RootItem.VersionOf.Value != null)
                journal.RootItem.Parent = journal.RootItem.VersionOf.Parent;

            ReorderBySortOrderRecursive(journal.RootItem);

            return journal.RootItem;
        }
Beispiel #51
0
		public override void SetUp()
		{
			base.SetUp();

			CreatePersister();

			parser = mocks.StrictMock<IUrlParser>();

			ITypeFinder typeFinder = CreateTypeFinder();
			DefinitionBuilder builder = new DefinitionBuilder(new DefinitionMap(), typeFinder, new TransformerBase<IUniquelyNamed>[0], TestSupport.SetupEngineSection());
			IItemNotifier notifier = mocks.DynamicMock<IItemNotifier>();
			mocks.Replay(notifier);
			var changer = new N2.Edit.Workflow.StateChanger();
			activator = new ContentActivator(changer, notifier, new EmptyProxyFactory());
			definitions = new DefinitionManager(new[] { new DefinitionProvider(builder) }, new ITemplateProvider[0], activator, changer, new DefinitionMap());
			finder = new FakeItemFinder(() => Enumerable.Empty<ContentItem>());
			integrityManger = new IntegrityManager(definitions, finder, parser);
			IntegrityEnforcer enforcer = new IntegrityEnforcer(persister, integrityManger, activator);
			enforcer.Start();
		}
		public override void SetUp()
		{
			base.SetUp();

			root = CreateOneItem<PageItem>(1, "root", null);
			one = CreateOneItem<CustomExtensionItem>(2, "one", root);
			two = CreateOneItem<PageItem>(3, "two", one);
			CreateOneItem<DataItem>(4, "four", root);
			three = CreateOneItem<PageItem>(5, "three.3", root);

			webContext = new FakeWebContextWrapper();
			var hostSection = new HostSection { Web = new WebElement { Rewrite = rewriteMethod } };
			parser = new UrlParser(persister, webContext, new Host(webContext, root.ID, root.ID), new N2.Plugin.ConnectionMonitor(), hostSection);
			errorHandler = new FakeErrorHandler();
			engine = new FakeEngine();
			engine.Container.AddComponentInstance(null, typeof(IWebContext), webContext);
			engine.Container.AddComponentInstance(null, typeof(TargetingRadar), new TargetingRadar(hostSection, new DetectorBase[0]));
			adapterProvider = new ContentAdapterProvider(engine, new AppDomainTypeFinder());
			adapterProvider.Start();

			ReCreateDispatcherWithConfig(hostSection);
		}
Beispiel #53
0
        public override void SetUp()
        {
            base.SetUp();

            finder = new FakeTypeFinder(typeof(XmlableItem).Assembly, typeof(XmlableItem), typeof(XmlableItem2));
            notifier = mocks.Stub<IItemNotifier>();
            mocks.Replay(notifier);

            definitions = new DefinitionManager(
                new DefinitionBuilder(
                    finder,
                    new EngineSection(),
                    new FakeEditUrlManager()),
                new N2.Edit.Workflow.StateChanger(),
                notifier,
                new InterceptingProxyFactory());

            parser = mocks.StrictMock<IUrlParser>();
            Expect.On(parser)
                .Call(parser.BuildUrl(null))
                .IgnoreArguments()
                .Do(new BuildUrl(delegate(ContentItem itemToBuild)
                                    {
                                        string url = "/" + itemToBuild.Name + ".aspx";
                                        foreach (ContentItem parent in Find.EnumerateParents(itemToBuild, null))
                                        {
                                            if (parent.Parent != null)
                                                url = "/" + parent.Name + url;
                                        }
                                        return url;
                                    }))
                .Repeat.Any();
            mocks.Replay(parser);

            persister = mocks.StrictMock<IPersister>();
            persister.Save(null);
            LastCall.IgnoreArguments().Repeat.Any();
            mocks.Replay(persister);
        }
 public CachingUrlParserDecorator(IUrlParser inner, IPersister persister)
 {
     this.inner = inner;
     this.persister = persister;
 }
Beispiel #55
0
        public override void SetUp()
        {
            base.SetUp();

            CreatePersister();

            parser = mocks.StrictMock<IUrlParser>();

            ITypeFinder typeFinder = CreateTypeFinder();
            ContentTypeBuilder builder = new ContentTypeBuilder(typeFinder, new EditableHierarchyBuilder<IEditor>(),
                new AttributeExplorer<IDisplayer>(), new AttributeExplorer<IEditor>(),
                new AttributeExplorer<IContentProperty>(), new AttributeExplorer<IEditorContainer>());
            IItemNotifier notifier = mocks.DynamicMock<IItemNotifier>();
            mocks.Replay(notifier);
            definitions = new ContentTypeManager(builder, notifier);
            integrityManger = new IntegrityManager(definitions, parser, null, null);
            IntegrityEnforcer enforcer = new IntegrityEnforcer(persister, integrityManger);
            enforcer.Start();
        }
Beispiel #56
0
 public ChildrenAjaxService(Navigator navigator, VirtualNodeFactory nodes, IUrlParser urls)
 {
     this.navigator = navigator;
     this.nodes = nodes;
     this.urls = urls;
 }
Beispiel #57
0
 public NotFoundHandler(IUrlParser parser, IWebContext context)
 {
     this.parser = parser;
 }
Beispiel #58
0
		internal static ContentItem Deserialize(Importer importer, IUrlParser parser, string xml)
		{
			var journal = importer.Read(new StringReader(xml));
			foreach (var link in journal.UnresolvedLinks.Where(ul => ul.IsChild == false))
			{
				var item = importer.Persister.Get(link.ReferencedItemID);
				if (item != null)
					link.Setter(item);
			}
			foreach (var item in journal.ReadItems)
				(item as IInjectable<IUrlParser>).Set(parser);
			return journal.RootItem;
		}
Beispiel #59
0
		public ContentVersion(Importer importer, Exporter exporter, IUrlParser parser)
		{
			Deserializer = (xml) => Deserialize(importer, parser, xml);
			Serializer = (item) => Serialize(exporter, item);
		}
Beispiel #60
0
        public override void SetUp()
        {
            base.SetUp();

            var wrapper = new N2.Tests.Fakes.FakeWebContextWrapper();
            parser = new UrlParser(persister, wrapper, new Host(wrapper, 1, 1), new HostSection());

            root = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(1, "root", null);
            item1 = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(2, "item1", root);
            item2 = CreateOneItem<N2.Tests.Edit.LinkTracker.Items.TrackableItem>(3, "item2", root);

            var errorHandler = new FakeErrorHandler();
            linkFactory = new Tracker(persister, null, parser, errorHandler);
            linkFactory.Start();
        }