@Test public void testServeInvalidatedContentWithFetcherError() throws Exception { oauth.httpResponse = CACHEABLE; HttpResponse httpResponse = requestPipeline.execute(signedRequest); // Invalidate by owner service.invalidateUserResources(ImmutableSet.of("OwnerX"), appxToken); // Next request returns error oauth.httpResponse = HttpResponse.error(); httpResponse = requestPipeline.execute(signedRequest); assertEquals(CACHEABLE, httpResponse); } }
fetchedResponse = maybeFixDriftTime(fetchedResponse); return cacheFetchedResponse(request, httpResponseBuilder.create()); fetchedResponse = cacheFetchedResponse(request, fetchedResponse);
public HttpResponse execute(HttpRequest request) throws GadgetException { final String method = "execute"; normalizeProtocol(request); HttpResponse cachedResponse = checkCachedResponse(request); HttpResponse fetchedResponse = fetchResponse(request); fetchedResponse = fixFetchedResponse(request, fetchedResponse, invalidatedResponse, staleResponse); return fetchedResponse;
@Test public void verifyHashCode() throws Exception { HttpRequest request = new HttpRequest(DEFAULT_URI) .setAuthType(AuthType.NONE); fetcher.response = new HttpResponse("response"); RequestPipeline pipeline = new DefaultRequestPipeline(fetcher, cache, oauth, new DefaultResponseRewriterRegistry(null, null), new NoOpInvalidationService(), new HttpResponseMetadataHelper()); HttpResponse response = pipeline.execute(request); assertEquals(1, response.getMetadata().size()); assertEquals("q7u8tbpmidtu1gtqhjv0kb0rvo", response.getMetadata().get(HttpResponseMetadataHelper.DATA_HASH)); }
@Test public void testFixedDateOk() throws Exception { int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader( "Date", DateUtil.formatRfc1123Date(1000L * time + 1000 - DefaultRequestPipeline.DEFAULT_DRIFT_LIMIT_MS)).setCacheTtl(100) .create(); HttpResponse newResponse = DefaultRequestPipeline.maybeFixDriftTime(response); assertSame(response, newResponse); }
public HttpResponse execute(HttpRequest request) throws GadgetException { normalizeProtocol(request); HttpResponse invalidatedResponse = null; HttpResponse staleResponse = null;
@Test public void verifyHashCode() throws Exception { HttpRequest request = new HttpRequest(DEFAULT_URI).setAuthType(AuthType.NONE); int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()) - 10; String date = DateUtil.formatRfc1123Date(1000L * time); HttpResponseBuilder builder = new HttpResponseBuilder().setCacheTtl(100) .addHeader("Date", date); builder.setContent("response"); fetcher.response = builder.create(); RequestPipeline pipeline = new DefaultRequestPipeline(fetcher, cache, oauth, oauth2, new DefaultResponseRewriterRegistry(null, null), new NoOpInvalidationService(), new HttpResponseMetadataHelper()); HttpResponse response = pipeline.execute(request); assertEquals(1, response.getMetadata().size()); assertEquals("q7u8tbpmidtu1gtqhjv0kb0rvo", response.getMetadata().get(HttpResponseMetadataHelper.DATA_HASH)); assertEquals(date, response.getHeader("Date")); assertEquals(roundToSeconds(90000 - 1), roundToSeconds(response.getCacheTtl() - 1)); }
@Test public void testFixedDateOk() throws Exception { int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader( "Date", DateUtil.formatRfc1123Date(1000L * time + 1000 - DefaultRequestPipeline.DEFAULT_DRIFT_LIMIT_MS)).setCacheTtl(100) .create(); HttpResponse newResponse = DefaultRequestPipeline.maybeFixDriftTime(response); assertSame(response, newResponse); }
public HttpResponse execute(HttpRequest request) throws GadgetException { normalizeProtocol(request); HttpResponse invalidatedResponse = null; HttpResponse staleResponse = null;
@Test public void testServeInvalidatedContentWithFetcherError() throws Exception { oauth.httpResponse = CACHEABLE; HttpResponse httpResponse = requestPipeline.execute(signedRequest); // Invalidate by owner service.invalidateUserResources(ImmutableSet.of("OwnerX"), appxToken); // Next request returns error oauth.httpResponse = HttpResponse.error(); httpResponse = requestPipeline.execute(signedRequest); assertEquals(CACHEABLE, httpResponse); } }
@Test public void verifyHashCode() throws Exception { HttpRequest request = new HttpRequest(DEFAULT_URI).setAuthType(AuthType.NONE); int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()) - 10; String date = DateUtil.formatRfc1123Date(1000L * time); HttpResponseBuilder builder = new HttpResponseBuilder().setCacheTtl(100) .addHeader("Date", date); builder.setContent("response"); fetcher.response = builder.create(); RequestPipeline pipeline = new DefaultRequestPipeline(fetcher, cache, oauth, oauth2, new DefaultResponseRewriterRegistry(null, null), new NoOpInvalidationService(), new HttpResponseMetadataHelper()); HttpResponse response = pipeline.execute(request); assertEquals(1, response.getMetadata().size()); assertEquals("q7u8tbpmidtu1gtqhjv0kb0rvo", response.getMetadata().get(HttpResponseMetadataHelper.DATA_HASH)); assertEquals(date, response.getHeader("Date")); assertEquals(roundToSeconds(90000 - 1), roundToSeconds(response.getCacheTtl() - 1)); }
@Test public void testFixedDateNew() throws Exception { int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader( "Date", DateUtil.formatRfc1123Date(1000L * time + 1000 + DefaultRequestPipeline.DEFAULT_DRIFT_LIMIT_MS)).setCacheTtl(100) .create(); response = DefaultRequestPipeline.maybeFixDriftTime(response); // Verify that the old time is ignored: assertEquals(time + 100, roundToSeconds(response.getCacheExpiration())); assertEquals(DateUtil.formatRfc1123Date(HttpResponseTest.timeSource.currentTimeMillis()), response.getHeader("Date")); }
@Test public void testServeInvalidatedContentWithFetcherError() throws Exception { oauth.httpResponse = CACHEABLE; HttpResponse httpResponse = requestPipeline.execute(signedRequest); // Invalidate by owner service.invalidateUserResources(ImmutableSet.of("OwnerX"), appxToken); // Next request returns error oauth.httpResponse = HttpResponse.error(); httpResponse = requestPipeline.execute(signedRequest); assertEquals(CACHEABLE, httpResponse); } }
@Before public void setUp() { cacheProvider = new LruCacheProvider(100); cache = new DefaultHttpCache(cacheProvider); service = new DefaultInvalidationService(cache, cacheProvider, new AtomicLong()); appxToken = new FakeGadgetToken(); appxToken.setAppId("AppX"); appxToken.setOwnerId("OwnerX"); appxToken.setViewerId("ViewerX"); appyToken = new FakeGadgetToken(); appyToken.setAppId("AppY"); appyToken.setOwnerId("OwnerY"); appyToken.setViewerId("ViewerY"); signedRequest = new HttpRequest(URI); signedRequest.setAuthType(AuthType.SIGNED); signedRequest.setSecurityToken(appxToken); signedRequest.setOAuthArguments(new OAuthArguments()); signedRequest.getOAuthArguments().setUseToken(OAuthArguments.UseToken.NEVER); signedRequest.getOAuthArguments().setSignOwner(true); signedRequest.getOAuthArguments().setSignViewer(true); fetcher = new DefaultRequestPipelineTest.FakeHttpFetcher(); oauth = new DefaultRequestPipelineTest.FakeOAuthRequestProvider(); requestPipeline = new DefaultRequestPipeline(fetcher, cache, oauth, oauth2, new DefaultResponseRewriterRegistry(null, null), service, new HttpResponseMetadataHelper()); }
@Test public void testFixedDateOld() throws Exception { int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader( "Date", DateUtil.formatRfc1123Date(1000L * time - 1000 - DefaultRequestPipeline.DEFAULT_DRIFT_LIMIT_MS)).setCacheTtl(100) .create(); response = DefaultRequestPipeline.maybeFixDriftTime(response); // Verify that the old time is ignored: assertEquals(time + 100, roundToSeconds(response.getCacheExpiration())); assertEquals(DateUtil.formatRfc1123Date(HttpResponseTest.timeSource.currentTimeMillis()), response.getHeader("Date")); }
@Test public void testFetchWithInvalidationEnabled() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(CACHEABLE, requestPipeline.execute(new HttpRequest(URI))); }
@Before public void setUp() { cacheProvider = new LruCacheProvider(100); cache = new DefaultHttpCache(cacheProvider); service = new DefaultInvalidationService(cache, cacheProvider, new AtomicLong()); appxToken = new FakeGadgetToken(); appxToken.setAppId("AppX"); appxToken.setOwnerId("OwnerX"); appxToken.setViewerId("ViewerX"); appyToken = new FakeGadgetToken(); appyToken.setAppId("AppY"); appyToken.setOwnerId("OwnerY"); appyToken.setViewerId("ViewerY"); signedRequest = new HttpRequest(URI); signedRequest.setAuthType(AuthType.SIGNED); signedRequest.setSecurityToken(appxToken); signedRequest.setOAuthArguments(new OAuthArguments()); signedRequest.getOAuthArguments().setUseToken(OAuthArguments.UseToken.NEVER); signedRequest.getOAuthArguments().setSignOwner(true); signedRequest.getOAuthArguments().setSignViewer(true); fetcher = new DefaultRequestPipelineTest.FakeHttpFetcher(); oauth = new DefaultRequestPipelineTest.FakeOAuthRequestProvider(); requestPipeline = new DefaultRequestPipeline(fetcher, cache, oauth, new DefaultResponseRewriterRegistry(null, null), service, new HttpResponseMetadataHelper()); }
@Test public void testFixedDateOld() throws Exception { int time = roundToSeconds(HttpResponseTest.timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader( "Date", DateUtil.formatRfc1123Date(1000L * time - 1000 - DefaultRequestPipeline.DEFAULT_DRIFT_LIMIT_MS)).setCacheTtl(100) .create(); response = DefaultRequestPipeline.maybeFixDriftTime(response); // Verify that the old time is ignored: assertEquals(time + 100, roundToSeconds(response.getCacheExpiration())); assertEquals(DateUtil.formatRfc1123Date(HttpResponseTest.timeSource.currentTimeMillis()), response.getHeader("Date")); }
@Test public void testFetchWithInvalidationEnabled() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(CACHEABLE, requestPipeline.execute(new HttpRequest(URI))); }
@Before public void setUp() { cacheProvider = new LruCacheProvider(100); cache = new DefaultHttpCache(cacheProvider); service = new DefaultInvalidationService(cache, cacheProvider, new AtomicLong()); appxToken = new FakeGadgetToken(); appxToken.setAppId("AppX"); appxToken.setOwnerId("OwnerX"); appxToken.setViewerId("ViewerX"); appyToken = new FakeGadgetToken(); appyToken.setAppId("AppY"); appyToken.setOwnerId("OwnerY"); appyToken.setViewerId("ViewerY"); signedRequest = new HttpRequest(URI); signedRequest.setAuthType(AuthType.SIGNED); signedRequest.setSecurityToken(appxToken); signedRequest.setOAuthArguments(new OAuthArguments()); signedRequest.getOAuthArguments().setUseToken(OAuthArguments.UseToken.NEVER); signedRequest.getOAuthArguments().setSignOwner(true); signedRequest.getOAuthArguments().setSignViewer(true); fetcher = new DefaultRequestPipelineTest.FakeHttpFetcher(); oauth = new DefaultRequestPipelineTest.FakeOAuthRequestProvider(); requestPipeline = new DefaultRequestPipeline(fetcher, cache, oauth, oauth2, new DefaultResponseRewriterRegistry(null, null), service, new HttpResponseMetadataHelper()); }