blob: 89c9e81a1d27b21778a9c93ec4b1cd42027b3111 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013 Tasktop Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.commons.repositories.http.tests;
import static org.junit.Assert.fail;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.mylyn.commons.core.operations.CancellableOperationMonitorThread;
import org.eclipse.mylyn.commons.repositories.core.RepositoryLocation;
import org.eclipse.mylyn.commons.repositories.http.core.CommonHttpClient;
import org.eclipse.mylyn.commons.repositories.http.core.CommonHttpResponse;
import org.eclipse.mylyn.commons.sdk.util.CommonTestUtil;
import org.eclipse.mylyn.commons.sdk.util.TestUrl;
import org.eclipse.mylyn.internal.commons.core.operations.NullOperationMonitor;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @author Steffen Pingel
*/
public class CommonHttpResponseTest {
private final TestUrl urls = TestUrl.DEFAULT;
private NullOperationMonitor monitor;
private CommonHttpResponse response;
private final CancellableOperationMonitorThread monitorThread = new CancellableOperationMonitorThread();
@BeforeClass
public static void setUpClass() {
if (CommonTestUtil.fixProxyConfiguration()) {
CommonTestUtil.dumpSystemInfo(System.err);
}
}
@Before
public void setUp() throws Exception {
monitor = new NullOperationMonitor();
RepositoryLocation location = new RepositoryLocation();
location.setUrl(urls.getHttpOk().toString());
HttpGet request = new HttpGet(location.getUrl());
CommonHttpClient client = new CommonHttpClient(location);
HttpResponse clientResponse = client.execute(request, monitor);
response = new CommonHttpResponse(request, clientResponse, monitorThread, monitor);
}
@After
public void tearDown() {
if (response != null) {
response.release();
}
}
@Test
public void testCancel() throws Exception {
monitor.setCanceled(true);
InputStream in = response.getResponseEntityAsStream();
monitorThread.processOperations();
try {
in.read();
fail("Expected OperationCancelledException");
} catch (OperationCanceledException e) {
// ignore
}
}
@Test
public void testCancelAfterRead() throws Exception {
InputStream in = response.getResponseEntityAsStream();
in.read();
monitor.setCanceled(true);
monitorThread.processOperations();
try {
in.read();
fail("Expected OperationCancelledException");
} catch (OperationCanceledException e) {
// ignore
}
}
}