-
-
Notifications
You must be signed in to change notification settings - Fork 669
/
NamespaceContextTest.java
137 lines (108 loc) · 4.1 KB
/
NamespaceContextTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package io.github.bonigarcia.wdm.test.other;
import io.github.bonigarcia.wdm.WebDriverManager;
import io.github.bonigarcia.wdm.config.DriverManagerType;
import io.github.bonigarcia.wdm.online.HttpClient;
import io.github.bonigarcia.wdm.online.S3BucketListNamespaceContext;
import org.hamcrest.Matchers;
import org.junit.Test;
import javax.xml.namespace.NamespaceContext;
import java.io.IOException;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
import static org.junit.Assert.fail;
public class NamespaceContextTest {
public static final S3BucketListNamespaceContext S_3_BUCKET_LIST_NAMESPACE_CONTEXT = new S3BucketListNamespaceContext();
public static final String S3_URI = "http://doc.s3.amazonaws.com/2006-03-01";
@Test
public void testS3BucketListNamespaceContextUrls() throws IOException {
TestWebDriverManager testManager = new TestWebDriverManager();
List<URL> urls = testManager.getDriverUrls();
assertThat(urls, is(not(empty())));
}
@Test
public void testS3BucketListNamespaceContextPrefixes() {
assertThat(S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getNamespaceURI("s3"), equalTo(S3_URI));
assertThat(S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getPrefix(S3_URI), equalTo("s3"));
Iterator<String> prefixes = S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getPrefixes(S3_URI);
assertThat(prefixes.next(), equalTo("s3"));
assertThat(prefixes.hasNext(), equalTo(false));
}
@Test
public void testS3BucketListNamespaceContextInvalidPrefixes() {
try {
S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getNamespaceURI("xmlns");
fail("IllegalArgumentException should be thrown");
} catch (IllegalArgumentException e) {
assertThat(e.getMessage(), equalTo("Unsupported prefix"));
}
try {
S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getPrefix("http://www.w3.org/2000/xmlns/");
fail("IllegalArgumentException should be thrown");
} catch (IllegalArgumentException e) {
assertThat(e.getMessage(), equalTo("Unsupported namespace URI"));
}
assertThat(
S_3_BUCKET_LIST_NAMESPACE_CONTEXT.getPrefixes("http://www.w3.org/2000/xmlns/").hasNext(),
is(false)
);
}
private static final class TestWebDriverManager extends WebDriverManager {
@Override
protected NamespaceContext getNamespaceContext() {
return S_3_BUCKET_LIST_NAMESPACE_CONTEXT;
}
@Override
protected List<URL> getDriverUrls() throws IOException {
httpClient = new HttpClient(config());
return getDriversFromXml(getDriverUrl(), "//s3:Contents/s3:Key");
}
@Override
protected Optional<String> getBrowserVersionFromTheShell() {
return Optional.empty();
}
@Override
protected String getDriverName() {
return null;
}
@Override
protected String getDriverVersion() {
return null;
}
@Override
protected void setDriverVersion(String driverVersion) {
}
@Override
protected String getBrowserVersion() {
return null;
}
@Override
protected void setBrowserVersion(String browserVersion) {
}
@Override
protected URL getDriverUrl() {
return getDriverUrlCkeckingMirror(config().getChromeDriverUrl());
}
@Override
protected void setDriverUrl(URL url) {
}
@Override
protected Optional<URL> getMirrorUrl() {
return Optional.empty();
}
@Override
protected Optional<String> getExportParameter() {
return Optional.empty();
}
@Override
public DriverManagerType getDriverManagerType() {
return null;
}
}
}