@Override
    protected DAVClient connect(final ProxyFinder proxy, final HostKeyCallback key, final LoginCallback prompt, final CancelCallback cancel) throws BackgroundException {
        final HttpClientBuilder configuration = this.getConfiguration(proxy, prompt);
        return new DAVClient(new HostUrlProvider().withUsername(false).get(host), configuration);
    }
@Test
    @Ignore
    public void testConnectProxy() throws Throwable {
        final Host host = new Host(new DAVSSLProtocol(), "svn.cyberduck.io");
        final AtomicBoolean verified = new AtomicBoolean();
        final DAVSession session = new DAVSession(host, new DefaultX509TrustManager() {
            @Override
            public void verify(final String hostname, final X509Certificate[] certs, final String cipher) throws CertificateException {
                assertNotNull(hostname);
                verified.set(true);
                super.verify(hostname, certs, cipher);
            }
        },
                new KeychainX509KeyManager(new DisabledCertificateIdentityCallback(), host, new DisabledCertificateStore())) {
        };
        final LoginConnectionService c = new LoginConnectionService(
                new DisabledLoginCallback() {
                    @Override
                    public Credentials prompt(final Host bookmark, final String username, final String title, final String reason, final LoginOptions options) {
                        return new Credentials("test", "test");
                    }
                },
                new DisabledHostKeyCallback(),
                new DisabledPasswordStore(),
                new DisabledProgressListener(),
                new ProxyFinder() {
                    @Override
                    public Proxy find(final String target) {
                        return new Proxy(Proxy.Type.HTTP, "localhost", 8080);
                    }
                }
        );
        try {
            Executors.newSingleThreadExecutor().submit(new Callable<Void>() {
                @Override
                public Void call() throws Exception {
                    c.connect(session, new DisabledCancelCallback());
                    return null;
                }
            }).get();
        }
        catch(ExecutionException e) {
            throw e.getCause();
        }
        finally {
            assertTrue(verified.get());
            session.close();
        }
    }