示例#1
0
        public void CanNavigate_ToRoot()
        {
            ContentItem root = CreateOneItem<AnItem>(1, "root", null);
            ContentItem item1 = CreateOneItem<AnItem>(2, "item1", root);

            Navigator n = new Navigator(persister, host, new VirtualNodeFactory(), source);

            ContentItem navigatedItem = n.Navigate("/");

            Assert.AreSame(root, navigatedItem);
        }
示例#2
0
        public void CanNavigate_FromStartPage()
        {
            ContentItem root = CreateOneItem<AnItem>(1, "root", null);
            ContentItem start = CreateOneItem<AnItem>(2, "start", root);
            ContentItem item1 = CreateOneItem<AnItem>(3, "item1", start);

            Navigator n = new Navigator(persister, new Host(new ThreadContext(), 1, 2), new VirtualNodeFactory(), source);

            ContentItem navigatedItem = n.Navigate("~/item1");

            Assert.AreSame(item1, navigatedItem);
        }
示例#3
0
        public void CanNavigate()
        {
            ContentItem root = CreateOneItem<AnItem>(1, "root", null);
            ContentItem item1 = CreateOneItem<AnItem>(2, "item1", root);
            ContentItem item1_item12 = CreateOneItem<AnItem>(2, "item1.2", item1);

            Navigator n = new Navigator(null, host, new VirtualNodeFactory(), source);

            ContentItem navigatedItem = n.Navigate(item1, "item1.2");

            Assert.AreSame(item1_item12, navigatedItem);
        }
示例#4
0
        public void Fallbacks_ToVirtualNodes()
        {
            ContentItem root = CreateOneItem<AnItem>(1, "root", null);
            ContentItem item1 = CreateOneItem<AnItem>(2, "item1", root);

            var factory = new VirtualNodeFactory();
            factory.Register(new FunctionalNodeProvider("/item1/hello/", (p) => new AnItem { Name = p }));
            Navigator n = new Navigator(persister, new Host(new ThreadContext(), 1, 1), factory);

            ContentItem navigatedItem = n.Navigate("/item1/hello/world/");
            Assert.That(navigatedItem.Name, Is.EqualTo("world/"));
        }
示例#5
0
        public void CanNavigate_FromRoot()
        {
            ContentItem root = CreateOneItem<AnItem>(1, "root", null);
            ContentItem item1 = CreateOneItem<AnItem>(2, "item1", root);
            ContentItem item1_item12 = CreateOneItem<AnItem>(2, "item1.2", item1);

            Navigator n = new Navigator(persister, new Host(new ThreadContext(), 1, 1), new VirtualNodeFactory());

            ContentItem navigatedItem = n.Navigate("/item1/item1.2");

            Assert.AreSame(item1_item12, navigatedItem);
        }
 // find item (and optional version) from request values (compare WebExtension.GetEditableWrapper)
 public static ContentItem FindItem(IVersionManager versions, ContentVersionRepository versionRepository, Navigator navigator, NameValueCollection request)
 {
     var item = navigator.Navigate(request[PathData.ItemQueryKey]);
     return versionRepository.ParseVersion(request[PathData.VersionIndexQueryKey], 
                                           request[PathData.VersionKeyQueryKey], item) ?? item;
 }