Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.shindig.gadgets.servlet;
 
 import static org.easymock.EasyMock.capture;
 import static org.easymock.EasyMock.expect;
 
 import  com.google.common.collect.Maps;
 
 
 import java.util.List;
 import java.util.Map;
 
 
 public class ProxyHandlerTest extends ServletTestFixture {
   private final static String URL_ONE = "http://www.example.org/test.html";
   private final static String DATA_ONE = "hello world";
 
   private final ProxyHandler proxyHandler
 
   private void expectGetAndReturnData(String urlbyte[] datathrows Exception {
     HttpRequest req = new HttpRequest(Uri.parse(url));
     HttpResponse resp = new HttpResponseBuilder().setResponse(data).create();
     expect(.execute(req)).andReturn(resp);
   }
 
   private void expectGetAndReturnHeaders(String urlMap<StringList<String>> headers)
       throws Exception {
     HttpRequest req = new HttpRequest(Uri.parse(url));
     HttpResponse resp = new HttpResponseBuilder().addAllHeaders(headers).create();
     expect(.execute(req)).andReturn(resp);
   }
 
   private void setupProxyRequestMock(String hostString urlthrows Exception {
     expect(.getHeader("Host")).andReturn(host);
   }
 
   private void setupFailedProxyRequestMock(String hostString urlthrows Exception {
     expect(.getHeader("Host")).andReturn(host);
   }
 
   public void testIfModifiedSinceAlwaysReturnsEarly() throws Exception {
     expect(.getHeader("If-Modified-Since"))
         .andReturn("Yes, this is an invalid header.");
     replay();
 
     verify();
 
   }
 
   public void testLockedDomainEmbed() throws Exception {
     setupProxyRequestMock("www.example.com");
     expect(.isSafeForOpenProxy("www.example.com")).andReturn(true);
     replay();
 
     verify();
 
   }
 
   public void testHttpRequestFillsParentAndContainer() throws Exception {
     setupProxyRequestMock("www.example.com");
     expect(.isSafeForOpenProxy("www.example.com")).andReturn(true);
     //HttpRequest req = new HttpRequest(Uri.parse(URL_ONE));
 
     Capture<HttpRequesthttpRequest = new Capture<HttpRequest>();
    expect(.execute(capture(httpRequest))).andReturn(resp);
    replay();
    verify();
    // Check that the HttpRequest passed in has all the relevant fields sets
    assertEquals("default"httpRequest.getValue().getContainer());
    assertEquals(Uri.parse(), httpRequest.getValue().getUri());
  }
  public void testLockedDomainFailedEmbed() throws Exception {
    setupFailedProxyRequestMock("www.example.com");
    expect(.isSafeForOpenProxy("www.example.com")).andReturn(false);
    replay();
    try {
      fail("Should have thrown");
    } catch (GadgetException e) {
      // good
    }
  }
  public void testHeadersPreserved() throws Exception {
    // Some headers may be blacklisted. These are OK.
    String url = "http://example.org/file.evil";
    String domain = "example.org";
    String contentType = "text/evil; charset=utf-8";
    String magicGarbage = "fadfdfdfd";
    Map<StringList<String>> headers = Maps.newHashMap();
    headers.put("Content-Type", Arrays.asList(contentType));
    headers.put("X-Magic-Garbage", Arrays.asList(magicGarbage));
    setupProxyRequestMock(domainurl);
    expectGetAndReturnHeaders(urlheaders);
    replay();
    assertEquals(contentType.getHeader("Content-Type"));
    assertEquals(magicGarbage.getHeader("X-Magic-Garbage"));
  }
  public void testNoCache() throws Exception {
    String url = "http://example.org/file.evil";
    String domain = "example.org";
    setupProxyRequestMock(domainurl);
    HttpRequest req = new HttpRequest(Uri.parse(url)).setIgnoreCache(true);
    HttpResponse resp = new HttpResponse("Hello");
    expect(.execute(req)).andReturn(resp);
    replay();
    verify();
  }
  private void expectMime(String expectedMimeString contentMimeString outputMime)
      throws Exception {
    String url = "http://example.org/file.img?" + . +
        "=" + expectedMime;
    String domain = "example.org";
    setupProxyRequestMock(domainurl);
        .andReturn(expectedMime).anyTimes();
    HttpRequest req = new HttpRequest(Uri.parse(url))
        .setRewriteMimeType(expectedMime);
    HttpResponse resp = new HttpResponseBuilder()
      .setResponseString("Hello")
      .addHeader("Content-Type"contentMime)
      .create();
    expect(.execute(req)).andReturn(resp);
    replay();
    verify();
    assertEquals(.getContentType(), outputMime);
    reset();
  }
  public void testMimeMatchPass() throws Exception {
    expectMime("text/css""text/css""text/css");
  }
    expectMime("text/css""text/css; charset=UTF-8""text/css");
  }
  public void testMimeMatchOverrideNonMatch() throws Exception {
    expectMime("text/css""image/png; charset=UTF-8""text/css");
  }
  public void testMimeMatchVarySupport() throws Exception {
    expectMime("image/*""image/gif""image/gif");
  }
New to GrepCode? Check out our FAQ X