@Test public void testSmallJPEGIsNotConvertedToPNGWithJpegConversionDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/small.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getDefaultConfigWithJpegConversionDisabled()); assertEquals("image/jpeg", rewritten.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() <= resp.getContentLength()); }
@Test public void testBadICC4() throws Exception { // ICC count too large HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/badicc4.jpg", "image/jpeg"); try { rewrite(resp); fail("Should have failed with OutOfMemory exception"); } catch (OutOfMemoryError oome) { // Currently we expect an OutOfMemory error. Working on this with Sanselan } catch (NullPointerException npe) { // For IBM JVM, NPE is thrown, bug: SANSELAN-23 } }
@Test public void testBadICC5() throws Exception { // ICC length too large. Should be readable by most VMs HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/2ndjpgbad.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testLargeJPEGWithEtagAndCacheHeaders() throws Exception { HttpResponseBuilder responseBuilder = createResponseBuilder("org/apache/shindig/gadgets/rewrite/image/large.jpg", "image/jpeg"); responseBuilder.addHeader("ETag", "wereertret"); responseBuilder.addHeader("Cache-Control", "public, max-age=86400"); HttpResponse resp = responseBuilder.create(); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); assertEquals("image/jpeg", resp.getHeader("Content-Type")); assertEquals("public, max-age=86400", resp.getHeader("Cache-Control")); assertNull(rewritten.getHeader("ETag")); assertTrue(rewritten.getContentLength() < resp.getContentLength()); }
HttpResponse rewrite(HttpResponse original) throws Exception { return rewrite(original, new OptimizerConfig()); }
@Test(expected=Throwable.class) public void testBadImage() throws Exception { // Not a JPEG HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/bad.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testLargeJPEGWithEtagAndCacheHeaders() throws Exception { HttpResponseBuilder responseBuilder = createResponseBuilder("org/apache/shindig/gadgets/rewrite/image/large.jpg", "image/jpeg"); responseBuilder.addHeader("ETag", "wereertret"); responseBuilder.addHeader("Cache-Control", "public, max-age=86400"); HttpResponse resp = responseBuilder.create(); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); assertEquals("image/jpeg", resp.getHeader("Content-Type")); assertEquals("public, max-age=86400", resp.getHeader("Cache-Control")); assertNull(rewritten.getHeader("ETag")); assertTrue(rewritten.getContentLength() < resp.getContentLength()); }
HttpResponse rewrite(HttpResponse original) throws Exception { return rewrite(original, new OptimizerConfig()); }
@Test public void testSmallJPEGIsNotConvertedToPNGWithJpegConversionDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/small.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getDefaultConfigWithJpegConversionDisabled()); assertEquals("image/jpeg", rewritten.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() <= resp.getContentLength()); }
@Test(expected=Throwable.class) public void testBadImage() throws Exception { // Not a JPEG HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/bad.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testBadICC4() throws Exception { // ICC count too large HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/badicc4.jpg", "image/jpeg"); try { rewrite(resp); fail("Should have failed with OutOfMemory exception"); } catch (OutOfMemoryError oome) { // Currently we expect an OutOfMemory error. Working on this with Sanselan } catch (NullPointerException npe) { // For IBM JVM, NPE is thrown, bug: SANSELAN-23 } }
@Test public void testLargeJPEG() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/large.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp); assertEquals("image/jpeg", resp.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() <= resp.getContentLength()); }
@Test(expected=Throwable.class) public void xtestBadICC1() throws Exception { // ICC section too long HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/badicc.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testBadICC4() throws Exception { // ICC count too large HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/badicc4.jpg", "image/jpeg"); try { rewrite(resp); fail("Should have failed with OutOfMemory exception"); } catch (OutOfMemoryError oome) { // Currently we expect an OutOfMemory error. Working on this with Sanselan } catch (NullPointerException npe) { // For IBM JVM, NPE is thrown, bug: SANSELAN-23 } }
@Test public void testSmallJPEGToPNG() throws Exception { // Should be significantly smaller HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/small.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp); assertEquals("image/png", rewritten.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() * 100 / resp.getContentLength() < 70); }
@Test(expected=Throwable.class) public void xtestBadICC1() throws Exception { // ICC section too long HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/badicc.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testLargeJPEG() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/large.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp); assertEquals("image/jpeg", resp.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() <= resp.getContentLength()); }
@Test public void testBadICC5() throws Exception { // ICC length too large. Should be readable by most VMs HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/2ndjpgbad.jpg", "image/jpeg"); rewrite(resp); }
@Test public void testSmallJPEGToPNG() throws Exception { // Should be significantly smaller HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/small.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp); assertEquals("image/png", rewritten.getHeader("Content-Type")); assertTrue(rewritten.getContentLength() * 100 / resp.getContentLength() < 70); }
@Test(expected=Throwable.class) public void testBadImage() throws Exception { // Not a JPEG HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/bad.jpg", "image/jpeg"); rewrite(resp); }