1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.http4;
18
19 import static org.junit.jupiter.api.Assertions.assertNotNull;
20
21 import java.net.MalformedURLException;
22 import java.net.URL;
23
24 import org.apache.commons.vfs2.FileContent;
25 import org.apache.commons.vfs2.FileObject;
26 import org.apache.commons.vfs2.FileSystemException;
27 import org.apache.commons.vfs2.FileSystemManager;
28 import org.apache.commons.vfs2.FileSystemOptions;
29 import org.apache.commons.vfs2.VFS;
30 import org.apache.commons.vfs2.auth.StaticUserAuthenticator;
31 import org.junit.jupiter.api.Test;
32
33
34
35
36 public class Http4GetContentInfoTest {
37
38 FileSystemOptions getOptionsWithProxy() throws MalformedURLException {
39
40 String proxyHost = null;
41 int proxyPort = -1;
42 final String proxyUrl = System.getenv("https_proxy");
43 if (proxyUrl != null) {
44 final URL url = new URL(proxyUrl);
45 proxyHost = url.getHost();
46 proxyPort = url.getPort();
47 }
48
49
50 if (proxyHost == null || proxyPort == -1) {
51 return null;
52 }
53
54
55 final Http4FileSystemConfigBuilder builder = Http4FileSystemConfigBuilder.getInstance();
56 final FileSystemOptions opts = new FileSystemOptions();
57 builder.setProxyHost(opts, proxyHost);
58 builder.setProxyPort(opts, proxyPort);
59 builder.setProxyScheme(opts, "http");
60 return opts;
61 }
62
63 private FileSystemOptions getOptionsWithProxyAuthentication() throws MalformedURLException {
64
65 String proxyHost = null;
66 int proxyPort = -1;
67 String[] user = null;
68 final String proxyUrl = System.getenv("https_proxy");
69 if (proxyUrl != null) {
70 final URL url = new URL(proxyUrl);
71 proxyHost = url.getHost();
72 proxyPort = url.getPort();
73 final String userInfo = url.getUserInfo();
74 if (userInfo != null) {
75 user = userInfo.split(":");
76
77 }
78 }
79
80
81 if (proxyHost == null || proxyPort == -1) {
82 return null;
83 }
84
85
86 final Http4FileSystemConfigBuilder builder = Http4FileSystemConfigBuilder.getInstance();
87 final FileSystemOptions opts = new FileSystemOptions();
88 builder.setProxyHost(opts, proxyHost);
89 builder.setProxyPort(opts, proxyPort);
90 if (user != null) {
91 builder.setProxyAuthenticator(opts, new StaticUserAuthenticator(null, user[0], user[1]));
92 }
93 return opts;
94 }
95
96
97
98
99
100
101 @Test
102 public void testGetContentInfo() throws FileSystemException, MalformedURLException {
103 @SuppressWarnings("resource")
104 final FileSystemManager fsManager = VFS.getManager();
105 final String uri = "http4://www.apache.org/licenses/LICENSE-2.0.txt";
106 try (FileObject fo = fsManager.resolveFile(uri, getOptionsWithProxy());
107 final FileContent content = fo.getContent()) {
108 assertNotNull(content);
109
110 content.getContentInfo();
111 }
112 }
113
114
115
116
117
118
119 @Test
120 public void testGetContentWithProxyAuthInfo() throws FileSystemException, MalformedURLException {
121 @SuppressWarnings("resource")
122 final FileSystemManager fsManager = VFS.getManager();
123 final String uri = "http4://www.apache.org/licenses/LICENSE-2.0.txt";
124 try (FileObject fo = fsManager.resolveFile(uri, getOptionsWithProxyAuthentication());
125 final FileContent content = fo.getContent()) {
126 assertNotNull(content);
127 content.getContentInfo();
128 }
129 }
130
131 }