private void verifySnoopCancelsRequestForMimeType(String mimeType, boolean cancel) { when(backgroundFetchCallback.shouldCancel(eq(uri), eq(mimeType), anyLong())).thenReturn(cancel); freenetInterface.startFetch(uri, backgroundFetchCallback); ArgumentCaptor<SnoopMetadata> snoopMetadata = forClass(SnoopMetadata.class); verify(clientGetter).setMetaSnoop(snoopMetadata.capture()); Metadata metadata = mock(Metadata.class); when(metadata.getMIMEType()).thenReturn(mimeType); assertThat(snoopMetadata.getValue().snoopMetadata(metadata, mock(ClientContext.class)), is(cancel)); }
@Test public void backgroundFetchRegistersSnoopAndRestartsTheRequest() throws Exception { freenetInterface.startFetch(uri, backgroundFetchCallback); verify(clientGetter).setMetaSnoop(any(SnoopMetadata.class)); verify(clientGetter).restart(eq(uri), anyBoolean(), any(ClientContext.class)); }
try { ClientGetter clientGetter = client.fetch(uri, 2097152, callback, fetchContext, RequestStarter.INTERACTIVE_PRIORITY_CLASS); clientGetter.setMetaSnoop(snoop); clientGetter.restart(uri, fetchContext.filterData, node.clientCore.clientContext); } catch (FetchException fe) {
FetchWaiter fw = new FetchWaiter((RequestClient)client); ClientGetter get = new ClientGetter(fw, uri, context, RequestStarter.INTERACTIVE_PRIORITY_CLASS, null, null, null); get.setMetaSnoop(new DumperSnoopMetadata()); get.start(n.clientCore.clientContext); FetchResult result = fw.waitForCompletion();