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); }
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); }
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); }
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/")); }
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; }