blob: 018e977fa9b058322136530334b799efb9ccad64 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 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.tasks.tests.core;
import java.net.InetSocketAddress;
import java.net.Proxy;
import junit.framework.TestCase;
import org.eclipse.core.net.proxy.IProxyData;
import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
import org.eclipse.mylyn.commons.net.AuthenticationType;
import org.eclipse.mylyn.commons.net.UnsupportedRequestException;
import org.eclipse.mylyn.internal.commons.net.AuthenticatedProxy;
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryLocation;
import org.eclipse.mylyn.tasks.core.TaskRepository;
/**
* @author Steffen Pingel
*/
public class TaskRepositoryLocationTest extends TestCase {
public void testGetCredentials() {
TaskRepository taskRepository = new TaskRepository("kind", "http://url");
taskRepository.flushAuthenticationCredentials();
TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
assertNull(location.getCredentials(AuthenticationType.HTTP));
taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.HTTP);
assertNotNull(credentials);
assertEquals("user", credentials.getUserName());
assertEquals("pwd", credentials.getPassword());
assertNull(location.getCredentials(AuthenticationType.PROXY));
taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user2", "pwd2"), true);
credentials = location.getCredentials(AuthenticationType.PROXY);
assertNotNull(credentials);
assertEquals("user2", credentials.getUserName());
assertEquals("pwd2", credentials.getPassword());
}
public void testGetProxyForHost() {
TaskRepository taskRepository = new TaskRepository("kind", "http://url");
TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
assertTrue(taskRepository.isDefaultProxyEnabled());
assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
taskRepository.setProperty(TaskRepository.PROXY_USEDEFAULT, "false");
assertFalse(taskRepository.isDefaultProxyEnabled());
assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "host");
taskRepository.setProperty(TaskRepository.PROXY_PORT, "1234");
Proxy proxy = location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE);
assertNotNull(proxy);
assertEquals(new InetSocketAddress("host", 1234), proxy.address());
taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user", "pwd"), false);
proxy = location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE);
assertNotNull(proxy);
assertEquals(new InetSocketAddress("host", 1234), proxy.address());
assertTrue(proxy instanceof AuthenticatedProxy);
assertEquals("user", ((AuthenticatedProxy) proxy).getUserName());
assertEquals("pwd", ((AuthenticatedProxy) proxy).getPassword());
}
public void testGetProxyForHostEmptyProxy() {
TaskRepository taskRepository = new TaskRepository("kind", "http://url");
TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
taskRepository.setDefaultProxyEnabled(false);
assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "");
taskRepository.setProperty(TaskRepository.PROXY_PORT, "");
assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "");
taskRepository.setProperty(TaskRepository.PROXY_PORT, "abc");
assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
}
public void testRequestCredentials() {
TaskRepository taskRepository = new TaskRepository("kind", "http://url");
TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
try {
location.requestCredentials(AuthenticationType.REPOSITORY, null, null);
fail("Expected UnsupportedRequestException");
} catch (UnsupportedRequestException expected) {
}
}
}