/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.shindig.application;
import java.util.LinkedList;
import org.junit.Before;
import org.junit.Test;
import static org.easymock.EasyMock.*;
import org.apache.shindig.common.crypto.BlobCrypter;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
public class FakeUserHttpFetcherTest {
ContainerConfig config;
BlobCrypter crypter;
@Before
public void setUp() {
LinkedList<String> containers = new LinkedList<String>();
containers.add("default");
config = createMock(ContainerConfig.class);
expect(config.getContainers()).andReturn(containers);
replay(config);
crypter = createMock(BlobCrypter.class);
}
@Test
public void testFetch_noToken() throws Exception {
Uri uri = Uri.parse("http://host?p=1");
HttpRequest request = createMock(HttpRequest.class);
expect(request.getUri()).andReturn(uri);
expect(request.setUri(Uri.parse("http://host?p=1&st=default%3Anull")))
.andReturn(request);
replay(request);
HttpResponse response = new HttpResponse();
HttpFetcher fetcher = createMock(HttpFetcher.class);
expect(fetcher.fetch(request)).andReturn(response);
replay(fetcher);
FakeUserHttpFetcher fakeFetcher;
fakeFetcher = new FakeUserHttpFetcher(config, fetcher, crypter);
fakeFetcher.fetch(request);
verify(request);
verify(fetcher);
}
@Test
public void testFetch_withToken() throws Exception {
Uri uri = Uri.parse("http://host?p=1&st=sometoken");
// We should get the request untouched.
HttpRequest request = createMock(HttpRequest.class);
expect(request.getUri()).andReturn(uri);
replay(request);
HttpResponse response = new HttpResponse();
HttpFetcher fetcher = createMock(HttpFetcher.class);
expect(fetcher.fetch(request)).andReturn(response);
replay(fetcher);
FakeUserHttpFetcher fakeFetcher;
fakeFetcher = new FakeUserHttpFetcher(config, fetcher, crypter);
fakeFetcher.fetch(request);
verify(request);
verify(fetcher);
}
}