mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SVN: svn authentication test to work on Unix as well (different defaults on different OSes)
This commit is contained in:
@@ -17,6 +17,7 @@ package org.jetbrains.idea.svn;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.Trinity;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
@@ -98,12 +99,13 @@ public class SvnAuthenticationTest extends PlatformTestCase {
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.persistent, url, Type.save));
|
||||
|
||||
commonScheme(url, false, null);
|
||||
Assert.assertEquals(3, listener.getCnt());
|
||||
Assert.assertEquals((SystemInfo.isWindows ? 3 : 2), listener.getCnt());
|
||||
//long start = System.currentTimeMillis();
|
||||
//waitListenerStep(start, listener, 3);
|
||||
|
||||
SvnConfiguration.RUNTIME_AUTH_CACHE.clear();
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.persistent, url, Type.request));
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.interactive, url, Type.request));
|
||||
commonScheme(url, false, null);
|
||||
//start = System.currentTimeMillis();
|
||||
//waitListenerStep(start, listener, 4);
|
||||
@@ -121,13 +123,81 @@ public class SvnAuthenticationTest extends PlatformTestCase {
|
||||
Assert.assertEquals(4, listener.getCnt());
|
||||
listener.assertForAwt();
|
||||
savedOnceListener.assertForAwt();
|
||||
savedOnceListener.assertSaved(url, ISVNAuthenticationManager.PASSWORD);
|
||||
|
||||
if (SystemInfo.isWindows) {
|
||||
savedOnceListener.assertSaved(url, ISVNAuthenticationManager.PASSWORD);
|
||||
} else {
|
||||
savedOnceListener.assertNotSaved(url, ISVNAuthenticationManager.PASSWORD);
|
||||
}
|
||||
|
||||
if (exception[0] != null) {
|
||||
throw exception[0];
|
||||
}
|
||||
}
|
||||
|
||||
public void testSavedAndReadUnix() throws Exception {
|
||||
if (SystemInfo.isWindows) return;
|
||||
|
||||
final TestListener listener = new TestListener(mySynchObject);
|
||||
myAuthenticationManager.addListener(listener);
|
||||
final SavedOnceListener savedOnceListener = new SavedOnceListener();
|
||||
myAuthenticationManager.addListener(savedOnceListener);
|
||||
|
||||
final SVNURL url = SVNURL.parseURIEncoded("http://some.host.com/repo");
|
||||
|
||||
final SVNException[] exception = new SVNException[1];
|
||||
final Boolean[] result = new Boolean[1];
|
||||
|
||||
final File servers = new File(myConfiguration.getConfigurationDirectory(), "servers");
|
||||
final File oldServers = new File(myConfiguration.getConfigurationDirectory(), "config_old");
|
||||
FileUtil.copy(servers, oldServers);
|
||||
try {
|
||||
FileUtil.appendToFile(servers, "\nstore-plaintext-passwords=yes\n");
|
||||
|
||||
synchronousBackground(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.persistent, url, Type.request));
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.interactive, url, Type.request));
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.persistent, url, Type.save));
|
||||
|
||||
commonScheme(url, false, null);
|
||||
Assert.assertEquals(3, listener.getCnt());
|
||||
//long start = System.currentTimeMillis();
|
||||
//waitListenerStep(start, listener, 3);
|
||||
|
||||
SvnConfiguration.RUNTIME_AUTH_CACHE.clear();
|
||||
listener.addStep(new Trinity<ProviderType, SVNURL, Type>(ProviderType.persistent, url, Type.request));
|
||||
commonScheme(url, false, null);
|
||||
//start = System.currentTimeMillis();
|
||||
//waitListenerStep(start, listener, 4);
|
||||
Assert.assertEquals(4, listener.getCnt());
|
||||
}
|
||||
catch (SVNException e) {
|
||||
exception[0] = e;
|
||||
}
|
||||
result[0] = true;
|
||||
}
|
||||
});
|
||||
} finally {
|
||||
FileUtil.delete(servers);
|
||||
FileUtil.rename(oldServers, servers);
|
||||
}
|
||||
|
||||
Assert.assertTrue(result[0]);
|
||||
myTestInteraction.assertNothing();
|
||||
Assert.assertEquals(4, listener.getCnt());
|
||||
listener.assertForAwt();
|
||||
savedOnceListener.assertForAwt();
|
||||
|
||||
savedOnceListener.assertSaved(url, ISVNAuthenticationManager.PASSWORD);
|
||||
|
||||
if (exception[0] != null) {
|
||||
throw exception[0];
|
||||
}
|
||||
}
|
||||
|
||||
private void waitListenerStep(long start, TestListener listener, final int stepNoNext) {
|
||||
while ((listener.getCnt() < stepNoNext) && ((System.currentTimeMillis() - start) < 10000)) {
|
||||
synchronized (mySynchObject) {
|
||||
|
||||
Reference in New Issue
Block a user