public Uri Navigate( DocumentLocator locator, ILocatorMacroResolver macroResolver ) { Contract.RequiresNotNull( locator, "locator" ); Contract.RequiresNotNull( macroResolver, "macroResolver" ); return NavigateToFinalSite( locator.Fragments, macroResolver ); }
public void FindDocument_Returns_Null_If_No_Matching_Document_In_DTE_Documents_Collection( [Frozen] DTE2 dte, [Frozen] IRunningDocumentTable runningDocumentTable, DocumentLocator sut, string documentPath, IRunningDocumentInfo info, Document[] documents, Documents documentCollection, uint docCookie) { runningDocumentTable .GetDocumentInfo(docCookie) .Returns(info); info.Moniker .Returns(documentPath); dte.Documents .Returns(documentCollection); documentCollection.GetEnumerator() .Returns(documents.GetEnumerator()); var result = sut.FindDocument(docCookie); result .Should() .BeNull(); }
public void Validate_IsValid_DoesNotThrows() { var locator = new DocumentLocator( new Request("http://test1.org"), new Response("http://test2.org")); RecursiveValidator.Validate(locator); }
public void Fragments_Add_ValueAdded() { var locator = new DocumentLocator(); locator.Fragments.Add(new Request("http://test1.org")); Assert.That(locator.Fragments[0].UrlString, Is.EqualTo("http://test1.org")); }
public void Fragments_Add_ChangeIsNotified() { var locator = new DocumentLocator(); var counter = new CollectionChangedCounter(locator.Fragments); locator.Fragments.Add(new Request("http://test1.org")); Assert.That(counter.Count, Is.EqualTo(1)); }
public void Clone_WhenCalled_AllMembersAreCloned() { var locator = new DocumentLocator( new Request("http://test1.org"), new Response("http://test2.org")); var clone = FigureDescriptorFactory.Clone(locator); Assert.That(clone.Fragments[0].UrlString, Is.EqualTo("http://test1.org")); Assert.That(clone.Fragments[1].UrlString, Is.EqualTo("http://test2.org")); }
public int CalculateLocationUID(DocumentLocator locator) { int hashCode = 0; foreach (var resolver in myResolvers) { hashCode = (hashCode + resolver.CalculateLocationUID(locator)) * 251; } return(hashCode); }
public int CalculateLocationUID(DocumentLocator locator) { int hashCode = 0; foreach (var fragment in locator.Fragments) { hashCode = (hashCode + fragment.UrlString.GetHashCode()) * 251; } return(hashCode); }
public void FindDocument_Will_ThrowIfNotOnUIThread( [Frozen] IThreadHelper threadHelper, DocumentLocator sut, uint docCookie) { sut.FindDocument(docCookie); threadHelper .Received(1) .ThrowIfNotOnUIThread(); }
public int CalculateLocationUID(DocumentLocator locator) { int hashCode = 0; foreach (var fragment in locator.Fragments) { hashCode = (hashCode + CalculateLocationUID(fragment)) * 251; } return(hashCode); }
public void FindDocument_Gets_DocumentInfo( [Frozen] IRunningDocumentTable runningDocumentTable, DocumentLocator sut, uint docCookie) { sut.FindDocument(docCookie); runningDocumentTable .Received(1) .GetDocumentInfo(docCookie); }
public void Navigate(DocumentType docType, DocumentLocator locator, ILocatorMacroResolver macroResolver) { var url = myNavigator.Navigate(locator, macroResolver); if (url == null) { return; } var loader = DocumentLoaderFactory.CreateLoader(docType, Browser); Document = loader.Load(url); }
public void Clone_WhenCalled_CollectionsAreMutableAndObservable() { var locator = new DocumentLocator(new Request("http://test1.org")); var clone = FigureDescriptorFactory.Clone(locator); var dump = SpecDumper.Dump(locator); var counter = new CollectionChangedCounter(clone.Fragments); clone.Fragments.Add(new Response("http://test2.org")); Assert.That(counter.Count, Is.EqualTo(1)); }
public void Navigate(DocumentType docType, DocumentLocator locator, ILocatorMacroResolver macroResolver) { var uri = myNavigator.Navigate(locator, macroResolver); myLogger.Info("Url from navigator: {0}", uri); var documentLoader = DocumentLoaderFactory.CreateLoader(docType); Document = documentLoader.Load(uri); if (DocumentCompleted != null) { DocumentCompleted(Document); } }
public Uri Navigate(DocumentLocator locator, ILocatorMacroResolver macroResolver) { // TODO: key for caching would need include the locator with patterns + kind of hashcode from resolver // (e.g. including hash of all known macros) var key = macroResolver.CalculateLocationUID(locator); var uri = myCache.TryGet(key); if (uri == null) { uri = myNavigator.Navigate(locator, macroResolver); uri = myCache.Add(key, uri); } return(uri); }
protected override async Task InitializeAsync( CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { var dte = await GetServiceAsync(typeof(SDTE)) as DTE2; if (dte is null) { return; } var runningDocumentTable = new RunningDocumentTableWrapper( new RunningDocumentTable(this)); var textFormatters = new ITextFormatter[] { new RemoveAndSortUsingsCommand(dte), new TrailingWhiteSpaceRemover(), new TrailingLineBreakRemover(), }; var threadHelper = new ThreadHelperWrapper(); var documentLocator = new DocumentLocator( dte, runningDocumentTable, threadHelper); var documentFormatter = new DocumentFormatter( dte, new VsTextViewProvider(this), new UndoProvider(), threadHelper, textFormatters); var eventHandler = new DocumentEventHandler( documentLocator, documentFormatter); runningDocumentTable.Advise(eventHandler); }
public static void Navigate(this IDocumentBrowser self, DocumentType docType, DocumentLocator locator) { self.Navigate(docType, locator, new NullLocatorMacroResolver()); }