blob: 586ff518e632b2a9b45f0fde3f3370fe3ed28a69 [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;
import java.net.URL;
import java.util.Collections;
import java.util.Date;
import java.util.Map;
import junit.framework.TestCase;
import org.eclipse.core.runtime.Platform;
import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
import org.eclipse.mylyn.commons.net.AuthenticationType;
import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants;
import org.eclipse.mylyn.tasks.core.TaskRepository;
/**
* @author Mik Kersten
*/
public class TaskRepositoryTest extends TestCase {
@SuppressWarnings("deprecation")
public void testPlatformAuthHandlerAvailable() throws Exception {
URL url = new URL("http://mylyn");
Platform.addAuthorizationInfo(url, "", "", Collections.EMPTY_MAP);
assertNotNull("Tests require org.eclipse.core.runtime.compatibility.auth", Platform.getAuthorizationInfo(url,
"", ""));
}
public void testLabel() {
TaskRepository repository = new TaskRepository("kind", "http://foo.bar");
assertTrue(repository.getRepositoryLabel().equals(repository.getRepositoryUrl()));
repository.setProperty(IRepositoryConstants.PROPERTY_LABEL, "label");
assertTrue(repository.getRepositoryLabel().equals("label"));
}
@SuppressWarnings("deprecation")
public void testPassword() throws Exception {
password(AuthenticationType.REPOSITORY);
// test old API
TaskRepository taskRepository = new TaskRepository("kind", "url");
taskRepository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("user", "pwd"), true);
assertEquals("user", taskRepository.getUserName());
assertEquals("pwd", taskRepository.getPassword());
assertEquals(null, taskRepository.getHttpUser());
assertEquals(null, taskRepository.getHttpPassword());
}
@SuppressWarnings("deprecation")
public void testHttpPassword() throws Exception {
password(AuthenticationType.HTTP);
TaskRepository taskRepository = new TaskRepository("kind", "url");
taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
assertEquals("user", taskRepository.getHttpUser());
assertEquals("pwd", taskRepository.getHttpPassword());
}
@SuppressWarnings("deprecation")
public void testProxyPassword() throws Exception {
password(AuthenticationType.PROXY);
TaskRepository taskRepository = new TaskRepository("kind", "url");
taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user", "pwd"), false);
assertEquals("user", taskRepository.getProxyUsername());
assertEquals("pwd", taskRepository.getProxyPassword());
}
@SuppressWarnings("deprecation")
public void testFlushCredentials() throws Exception {
TaskRepository taskRepository = new TaskRepository("kind", "url");
taskRepository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("user", "pwd"),
false);
taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
taskRepository.flushAuthenticationCredentials();
assertEquals(null, taskRepository.getUserName());
assertEquals(null, taskRepository.getPassword());
assertEquals(null, taskRepository.getHttpUser());
assertEquals(null, taskRepository.getHttpPassword());
assertNull(taskRepository.getCredentials(AuthenticationType.REPOSITORY));
assertNull(taskRepository.getCredentials(AuthenticationType.HTTP));
assertNull(taskRepository.getCredentials(AuthenticationType.PROXY));
}
public void testPlatformIsRunning() {
assertTrue(Platform.isRunning());
}
// TODO e3.4 move to new api
@SuppressWarnings("deprecation")
public void password(AuthenticationType authType) throws Exception {
URL url = new URL("http://url");
TaskRepository taskRepository = new TaskRepository("kind", url.toString());
try {
taskRepository.flushAuthenticationCredentials();
assertNull(taskRepository.getCredentials(authType));
assertTrue(taskRepository.getSavePassword(authType));
taskRepository.setCredentials(authType, new AuthenticationCredentials("user", "pwd"), true);
AuthenticationCredentials credentials = taskRepository.getCredentials(authType);
assertNotNull(credentials);
assertEquals("user", credentials.getUserName());
assertEquals("pwd", credentials.getPassword());
Map<?, ?> map = Platform.getAuthorizationInfo(url, "", "Basic");
assertNotNull(map);
assertTrue(map.containsValue("user"));
assertTrue(map.containsValue("pwd"));
// test not saving password
taskRepository.setCredentials(authType, new AuthenticationCredentials("user1", "pwd1"), false);
assertFalse(taskRepository.getSavePassword(authType));
credentials = taskRepository.getCredentials(authType);
assertNotNull(credentials);
assertEquals("user1", credentials.getUserName());
assertEquals("pwd1", credentials.getPassword());
// make sure old passwords are not in the key ring
map = Platform.getAuthorizationInfo(url, "", "Basic");
assertNotNull(map);
assertTrue(map.containsValue("user1"));
assertFalse(map.containsValue("pwd1"));
assertFalse(map.containsValue("user"));
assertFalse(map.containsValue("pwd"));
taskRepository.setCredentials(authType, new AuthenticationCredentials("user2", "pwd2"), true);
assertTrue(taskRepository.getSavePassword(authType));
credentials = taskRepository.getCredentials(authType);
assertNotNull(credentials);
assertEquals("user2", credentials.getUserName());
assertEquals("pwd2", credentials.getPassword());
} finally {
taskRepository.flushAuthenticationCredentials();
}
}
public void testConfigUpdateStoring() throws Exception {
URL url = new URL("http://url");
TaskRepository taskRepository = new TaskRepository("kind", url.toString());
Date stamp = taskRepository.getConfigurationDate();
assertNull("unset configuration date returns null", stamp);
stamp = new Date();
stamp.setTime(stamp.getTime() - 35000L);
taskRepository.setConfigurationDate(stamp);
assertEquals("Time stamp set", stamp.getTime(), taskRepository.getConfigurationDate().getTime());
}
}