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.oauth;
 
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.reportMatcher;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
 import org.junit.Test;
 
 
   private static final String MAKE_REQUEST_URL = "http://renderinghost/gadgets/makeRequest";
   private static final Uri DEST_URL = Uri.parse("http://www.example.com/destination");
   
   private IMocksControl control;
   private Processor processor;
   private UrlGenerator urlGenerator;
   private BlobCrypter stateCrypter;
   private Gadget gadget;
   
   @Before
   public void setUp() throws Exception {
      = EasyMock.createNiceControl();
      = .createMock(Processor.class);
      = new BasicBlobCrypter("1111111111111111111".getBytes());
      = new BasicSecurityToken("viewer""viewer""app""container.com",
         "gadget""0""default");
      = .createMock(Gadget.class);
      = new OAuthFetcherConfig(nullnullnullnull);
      = new OAuthResponseParams(nullnullnull);
   }
   
         );
   }
 
   @Test
   public void testDisabled() throws Exception {
     GadgetOAuthCallbackGenerator generator = new GadgetOAuthCallbackGenerator(falsenullnull,
         nullnull);
     assertNull(generator.generateCallback(nullnullnullnull));
   }
   
   @Test
   public void testWrongDomain() throws Exception {
     HttpRequest request = new HttpRequest();
     request.setSecurityToken();
     request.setOAuthArguments(new OAuthArguments());
         .andReturn();
     expect(.gadgetCanRender("renderinghost""default"))
         .andReturn(false);
     
     .replay();
     
     try {
       getGenerator().generateCallback("base"request);
      fail("Should have thrown");
    } catch (OAuthRequestException e) {
    }
    
    .verify();
  }
  
  @Test
  public void testBadGadget() throws Exception {
    HttpRequest request = new HttpRequest();
    request.setOAuthArguments(new OAuthArguments());
        .andThrow(new ProcessingException("doh"));
    
    .replay();
    
    try {
      getGenerator().generateCallback("base"request);
      fail("Should have thrown");
    } catch (OAuthRequestException e) {
    }
    
    .verify();
  }
  
  @Test
  public void testGenerateUrl_schemeRelative() throws Exception {
    HttpRequest request = new HttpRequest();
    request.setOAuthArguments(new OAuthArguments());
        .andReturn();
    expect(.gadgetCanRender("renderinghost""default"))
        .andReturn(true);
    expect(.getGadgetDomainOAuthCallback("default""renderinghost"))
        .andReturn("//renderinghost/final/callback");
    
    .replay();
    
    String callback = getGenerator().generateCallback("http://base/basecallback",
        request);
    Uri callbackUri = Uri.parse(callback);
    assertEquals("http"callbackUri.getScheme());
    assertEquals("base"callbackUri.getAuthority());
    assertEquals("/basecallback"callbackUri.getPath());
        callbackUri.getQueryParameter("cs"));
    assertEquals("http://renderinghost/final/callback"state.getRealCallbackUrl());
    
    .verify();
  }
  
  @Test
  public void testGenerateUrl_absolute() throws Exception {
    HttpRequest request = new HttpRequest();
    request.setOAuthArguments(new OAuthArguments());
        .andReturn();
    expect(.gadgetCanRender("renderinghost""default"))
        .andReturn(true);
    expect(.getGadgetDomainOAuthCallback("default""renderinghost"))
        .andReturn("https://renderinghost/final/callback");
    
    .replay();
    
    String callback = getGenerator().generateCallback("http://base/basecallback",
        request);
    Uri callbackUri = Uri.parse(callback);
    assertEquals("http"callbackUri.getScheme());
    assertEquals("base"callbackUri.getAuthority());
    assertEquals("/basecallback"callbackUri.getPath());
        callbackUri.getQueryParameter("cs"));
    assertEquals("https://renderinghost/final/callback"state.getRealCallbackUrl());
    
    .verify();
  }
  
  @Test
  public void testGenerateUrl_otherQueryParams() throws Exception {
    HttpRequest request = new HttpRequest();
    request.setOAuthArguments(new OAuthArguments());
        .andReturn();
    expect(.gadgetCanRender("renderinghost""default"))
        .andReturn(true);
    expect(.getGadgetDomainOAuthCallback("default""renderinghost"))
        .andReturn("https://renderinghost/final/callback");
    
    .replay();
    
        "http://base/basecallback?foo=bar%20baz"request);
    Uri callbackUri = Uri.parse(callback);
    assertEquals("http"callbackUri.getScheme());
    assertEquals("base"callbackUri.getAuthority());
    assertEquals("/basecallback"callbackUri.getPath());
    assertEquals("bar baz"callbackUri.getQueryParameter("foo"));
        callbackUri.getQueryParameter("cs"));
    assertEquals("https://renderinghost/final/callback"state.getRealCallbackUrl());
    
    .verify();
  }
  
  @Test
    HttpRequest request = new HttpRequest();
    request.setOAuthArguments(new OAuthArguments());
        .andReturn();
    expect(.gadgetCanRender("renderinghost""default"))
        .andReturn(true);
    expect(.getGadgetDomainOAuthCallback("default""renderinghost"))
        .andReturn(null);
    
    .replay();
    
        "http://base/basecallback?foo=bar%20baz"request));
    
    .verify();
  }
  
  private GadgetContext eqContext(SecurityToken securityTokenOAuthArguments arguments) {
    reportMatcher(new GadgetContextMatcher(securityTokenarguments));
    return null;
  }
  private static class GadgetContextMatcher implements IArgumentMatcher {
    private final SecurityToken securityToken;
    private final OAuthArguments arguments;
    public GadgetContextMatcher(SecurityToken securityTokenOAuthArguments arguments) {
      this. = securityToken;
      this. = arguments;
    }
    public boolean matches(Object argument) {
      if (!(argument instanceof OAuthGadgetContext)) {
        return false;
      }
      OAuthGadgetContext context = (OAuthGadgetContextargument;
      return ( == context.getToken() &&
          .getBypassSpecCache() == context.getIgnoreCache());
  }
    public void appendTo(StringBuffer buffer) {
      buffer.append("GadgetContextMatcher(" +  + ", " +  + ")");
    }
  }
New to GrepCode? Check out our FAQ X