Thanks! Better tests for the oauth stuff is long overdue. On Sat, Jul 19, 2008 at 10:11 PM, <[EMAIL PROTECTED]> wrote:
> Author: beaton > Date: Sat Jul 19 22:11:26 2008 > New Revision: 678250 > > URL: http://svn.apache.org/viewvc?rev=678250&view=rev > Log: > Better test coverage for OAuth token storage, and allow the OAuth tests > to run without relying on particular files in the classpath. This lets > us run the tests independently from inside eclipse. > > Added: > > > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/FakeGadgetSpecFactory.java > > > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStoreTest.java > Modified: > > > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java > > > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java > > > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java > > Modified: > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java > URL: > http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java?rev=678250&r1=678249&r2=678250&view=diff > > ============================================================================== > --- > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java > (original) > +++ > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java > Sat Jul 19 22:11:26 2008 > @@ -41,26 +41,27 @@ > public BasicGadgetOAuthTokenStore(OAuthStore store, > GadgetSpecFactory specFactory) throws GadgetException { > super(store, specFactory); > - initFromConfigFile(specFactory); > } > > - public void initFromConfigFile(GadgetSpecFactory specFactory) > - throws GadgetException { > + public void initFromConfigFile() throws GadgetException { > // Read our consumer keys and secrets from config/oauth.js > - // This actually involves fetching gadget specs > try { > String oauthConfigStr = ResourceLoader.getContent(OAUTH_CONFIG); > - > + initFromConfigString(oauthConfigStr); > + } catch (IOException e) { > + throw new GadgetException(GadgetException.Code.OAUTH_STORAGE_ERROR, > e); > + } > + } > + > + public void initFromConfigString(String oauthConfigStr)throws > GadgetException { > + try { > JSONObject oauthConfigs = new JSONObject(oauthConfigStr); > - > for (Iterator<?> i = oauthConfigs.keys(); i.hasNext();) { > String url = (String) i.next(); > URI gadgetUri = new URI(url); > JSONObject oauthConfig = oauthConfigs.getJSONObject(url); > storeConsumerInfos(gadgetUri, oauthConfig); > } > - } catch (IOException e) { > - throw new GadgetException(GadgetException.Code.OAUTH_STORAGE_ERROR, > e); > } catch (JSONException e) { > throw new GadgetException(GadgetException.Code.OAUTH_STORAGE_ERROR, > e); > } catch (URISyntaxException e) { > > Modified: > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java > URL: > http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java?rev=678250&r1=678249&r2=678250&view=diff > > ============================================================================== > --- > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java > (original) > +++ > incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java > Sat Jul 19 22:11:26 2008 > @@ -55,8 +55,10 @@ > this.oauthCrypter = new BasicBlobCrypter( > Crypto.getRandomBytes(BasicBlobCrypter.MASTER_KEY_MIN_LEN)); > > - this.tokenStore = > + BasicGadgetOAuthTokenStore store = > new BasicGadgetOAuthTokenStore(new BasicOAuthStore(), > specFactory); > + store.initFromConfigFile(); > + this.tokenStore = store; > } catch (Throwable t) { > // Since this happens at startup, we don't want to kill the server > just > // because we can't initialize the OAuth config. > > Added: > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/FakeGadgetSpecFactory.java > URL: > http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/FakeGadgetSpecFactory.java?rev=678250&view=auto > > ============================================================================== > --- > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/FakeGadgetSpecFactory.java > (added) > +++ > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/FakeGadgetSpecFactory.java > Sat Jul 19 22:11:26 2008 > @@ -0,0 +1,48 @@ > +/* > + * 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; > + > +import java.net.URI; > + > +import org.apache.shindig.gadgets.oauth.GadgetTokenStoreTest; > +import org.apache.shindig.gadgets.spec.GadgetSpec; > + > +/** > + * Fakes out a gadget spec factory > + */ > +public class FakeGadgetSpecFactory implements GadgetSpecFactory { > + public static final String SERVICE_NAME = "testservice"; > + public static final String SERVICE_NAME_NO_KEY = "nokey"; > + > + public GadgetSpec getGadgetSpec(GadgetContext context) { > + // we don't need this one yet > + return null; > + } > + > + public GadgetSpec getGadgetSpec(URI gadgetUri, boolean ignoreCache) > + throws GadgetException { > + if (gadgetUri.toString().contains("nokey")) { > + String nokeySpec = GadgetTokenStoreTest.GADGET_SPEC.replace( > + SERVICE_NAME, SERVICE_NAME_NO_KEY); > + return new GadgetSpec(gadgetUri, nokeySpec); > + } else { > + return new GadgetSpec(gadgetUri, GadgetTokenStoreTest.GADGET_SPEC); > + } > + } > +} > > Added: > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStoreTest.java > URL: > http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStoreTest.java?rev=678250&view=auto > > ============================================================================== > --- > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStoreTest.java > (added) > +++ > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStoreTest.java > Sat Jul 19 22:11:26 2008 > @@ -0,0 +1,63 @@ > +/* > + * 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 org.apache.shindig.gadgets.FakeGadgetSpecFactory; > +import org.apache.shindig.gadgets.GadgetTestFixture; > +import org.junit.Before; > +import org.junit.Test; > + > +/** > + * Tests for BasicGadgetOAuthTokenStore > + */ > +public class BasicGadgetOAuthTokenStoreTest extends GadgetTestFixture { > + > + private static final String CONFIG = "" + > + "{" + > + " ' > http://localhost:8080/gadgets/files/samplecontainer/examples/oauth.xml' : > {" + > + " 'testservice' : {" + > + " 'consumer_key' : 'noCallbackConsumer'," + > + " 'consumer_secret' : 'noCallbackSecret'," + > + " 'key_type' : 'HMAC_SYMMETRIC'" + > + " }" + > + " }" + > + "}"; > + > + private BasicGadgetOAuthTokenStore store; > + > + @Before > + public void setUp() throws Exception { > + OAuthStore backingStore = new BasicOAuthStore(); > + store = new BasicGadgetOAuthTokenStore(backingStore, new > FakeGadgetSpecFactory()); > + store.initFromConfigString(CONFIG); > + } > + > + @Test > + public void testReadOk() throws Exception { > + OAuthStore.TokenKey key = new OAuthStore.TokenKey(); > + key.setGadgetUri(" > http://localhost:8080/gadgets/files/samplecontainer/examples/oauth.xml"); > + key.setServiceName("testservice"); > + key.setUserId("bob"); > + key.setModuleId(0); > + key.setTokenName(""); > + OAuthStore.AccessorInfo accessor = store.getOAuthAccessor(key, false); > + assertEquals("noCallbackConsumer", > accessor.accessor.consumer.consumerKey); > + assertEquals("noCallbackSecret", > accessor.accessor.consumer.consumerSecret); > + assertEquals(OAuthStore.SignatureType.HMAC_SHA1, > accessor.signatureType); > + } > +} > > Modified: > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java > URL: > http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java?rev=678250&r1=678249&r2=678250&view=diff > > ============================================================================== > --- > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java > (original) > +++ > incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java > Sat Jul 19 22:11:26 2008 > @@ -21,25 +21,23 @@ > import static org.junit.Assert.assertNotNull; > import static org.junit.Assert.assertNull; > > +import java.net.URI; > +import java.util.Map; > + > import org.apache.shindig.common.BasicSecurityToken; > import org.apache.shindig.common.SecurityToken; > import org.apache.shindig.common.crypto.BasicBlobCrypter; > import org.apache.shindig.common.crypto.BlobCrypter; > -import org.apache.shindig.gadgets.GadgetContext; > +import org.apache.shindig.gadgets.FakeGadgetSpecFactory; > import org.apache.shindig.gadgets.GadgetException; > -import org.apache.shindig.gadgets.GadgetSpecFactory; > import org.apache.shindig.gadgets.http.HttpFetcher; > import org.apache.shindig.gadgets.http.HttpRequest; > import org.apache.shindig.gadgets.http.HttpResponse; > import > org.apache.shindig.gadgets.oauth.FakeOAuthServiceProvider.TokenPair; > -import org.apache.shindig.gadgets.spec.GadgetSpec; > import org.junit.After; > import org.junit.Before; > import org.junit.Test; > > -import java.net.URI; > -import java.util.Map; > - > /** > * Primitive test of the main code paths in OAuthFetcher. > * > @@ -52,8 +50,6 @@ > private BlobCrypter blobCrypter; > private FakeOAuthServiceProvider serviceProvider; > > - public static final String SERVICE_NAME = "testservice"; > - public static final String SERVICE_NAME_NO_KEY = "nokey"; > public static final String GADGET_URL = " > http://www.example.com/gadget.xml"; > public static final String GADGET_URL_NO_KEY = > "http://www.example.com/nokey.xml"; > @@ -72,21 +68,27 @@ > BasicOAuthStore base = new BasicOAuthStore(); > addValidConsumer(base); > addInvalidConsumer(base); > - return new BasicGadgetOAuthTokenStore(base, new > FakeGadgetSpecFactory()); > + BasicGadgetOAuthTokenStore store = new > BasicGadgetOAuthTokenStore(base, > + new FakeGadgetSpecFactory()); > + store.initFromConfigString("{}"); > + return store; > } > > private static void addValidConsumer(BasicOAuthStore base) { > addConsumer( > base, > GADGET_URL, > - SERVICE_NAME, > + FakeGadgetSpecFactory.SERVICE_NAME, > FakeOAuthServiceProvider.CONSUMER_KEY, > FakeOAuthServiceProvider.CONSUMER_SECRET); > } > > private static void addInvalidConsumer(BasicOAuthStore base) { > - addConsumer(base, GADGET_URL_NO_KEY, SERVICE_NAME_NO_KEY, > "garbage_key", > - "garbage_secret"); > + addConsumer( > + base, > + GADGET_URL_NO_KEY, > + FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, > + "garbage_key", "garbage_secret"); > } > > private static void addConsumer( > @@ -128,8 +130,8 @@ > } > > @SuppressWarnings("unused") > - public HttpFetcher getFetcher( > - SecurityToken authToken, OAuthRequestParams params) throws > GadgetException { > + public HttpFetcher getFetcher(SecurityToken authToken, > + OAuthRequestParams params) throws GadgetException { > OAuthFetcher fetcher = new OAuthFetcher( > tokenStore, blobCrypter, serviceProvider, authToken, params); > return fetcher; > @@ -143,7 +145,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -156,7 +159,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -164,7 +168,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "somebody else"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -172,7 +177,8 @@ > > fetcher = getFetcher( > getSecurityToken("somebody else", "somebody else"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -185,7 +191,8 @@ > > fetcher = getFetcher( > getSecurityToken("somebody else", "somebody else"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -200,7 +207,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -213,7 +221,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -223,7 +232,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -236,7 +246,8 @@ > serviceProvider.browserVisit(approvalUrl + "&user_data=reapproved"); > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -254,7 +265,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -267,7 +279,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -277,7 +290,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -290,7 +304,8 @@ > serviceProvider.browserVisit(approvalUrl + "&user_data=reapproved"); > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -305,7 +320,8 @@ > > fetcher = getFetcher( > getNokeySecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME_NO_KEY, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, > null, > + null, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -327,7 +343,8 @@ > > fetcher = getFetcher( > getNokeySecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME_NO_KEY, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, > null, > + null, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -350,7 +367,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -367,7 +385,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -380,7 +399,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -395,7 +415,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, null, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > null, > + false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -415,7 +436,8 @@ > > fetcher = getFetcher( > getSecurityToken("owner", "owner"), > - new OAuthRequestParams(SERVICE_NAME, null, clientState, false)); > + new OAuthRequestParams(FakeGadgetSpecFactory.SERVICE_NAME, null, > + clientState, false)); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > response = fetcher.fetch(request); > @@ -447,7 +469,8 @@ > String errorText = metadata.get("oauthErrorText"); > assertEquals( > 0, > - errorText.indexOf("Spec does not contain OAuth service > 'nosuchservice'. Known services: 'testservice'\n")); > + errorText.indexOf("Spec does not contain OAuth service " + > + "'nosuchservice'. Known services: > 'testservice'\n")); > } > > @Test > @@ -463,7 +486,8 @@ > TokenPair reqToken = > serviceProvider.getPreapprovedToken("preapproved"); > > OAuthRequestParams params = new OAuthRequestParams( > - SERVICE_NAME, null, null, false, reqToken.token, reqToken.secret); > + FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, > reqToken.token, > + reqToken.secret); > > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > @@ -507,7 +531,8 @@ > HttpResponse response; > > OAuthRequestParams params = new OAuthRequestParams( > - SERVICE_NAME, null, null, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage", > + "garbage"); > > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > @@ -521,7 +546,8 @@ > serviceProvider.browserVisit(approvalUrl + "&user_data=hello-oauth"); > > params = new OAuthRequestParams( > - SERVICE_NAME, null, clientState, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, > "garbage", > + "garbage"); > > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > @@ -531,7 +557,8 @@ > clientState = response.getMetadata().get("oauthState"); > > params = new OAuthRequestParams( > - SERVICE_NAME, null, clientState, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, > "garbage", > + "garbage"); > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > @@ -540,13 +567,15 @@ > } > > @Test > - public void testPreapprovedToken_invalidWithOutClientState() throws > Exception { > + public void testPreapprovedToken_invalidWithOutClientState() > + throws Exception { > HttpFetcher fetcher; > HttpRequest request; > HttpResponse response; > > OAuthRequestParams params = new OAuthRequestParams( > - SERVICE_NAME, null, null, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage", > + "garbage"); > > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > @@ -560,7 +589,8 @@ > serviceProvider.browserVisit(approvalUrl + "&user_data=hello-oauth"); > > params = new OAuthRequestParams( > - SERVICE_NAME, null, clientState, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, > "garbage", > + "garbage"); > > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > @@ -571,7 +601,8 @@ > > // Simulates a user leaving the page and then returning > params = new OAuthRequestParams( > - SERVICE_NAME, null, null, false, "garbage", "garbage"); > + FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage", > + "garbage"); > fetcher = getFetcher(getSecurityToken("owner", "owner"), params); > request = new HttpRequest( > new URI(FakeOAuthServiceProvider.RESOURCE_URL)); > @@ -579,20 +610,5 @@ > assertEquals("User data is hello-oauth", > response.getResponseAsString()); > } > > - private static class FakeGadgetSpecFactory implements GadgetSpecFactory > { > - public GadgetSpec getGadgetSpec(GadgetContext context) { > - // we don't need this one for this test > - return null; > - } > - public GadgetSpec getGadgetSpec(URI gadgetUri, boolean ignoreCache) > - throws GadgetException { > - if (gadgetUri.toString().contains("nokey")) { > - String nokeySpec = GadgetTokenStoreTest.GADGET_SPEC.replace( > - SERVICE_NAME, SERVICE_NAME_NO_KEY); > - return new GadgetSpec(gadgetUri, nokeySpec); > - } else { > - return new GadgetSpec(gadgetUri, > GadgetTokenStoreTest.GADGET_SPEC); > - } > - } > - } > + > } > > >

