Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Network Health
Metrics
Exonerator
Commits
fa80fff4
Commit
fa80fff4
authored
Jan 09, 2018
by
iwakeh
Browse files
Avoid adding superfluous brackets in suggestion links.
Also add a test checking for superfluous brackets. Fixes task-26032.
parent
5eaad992
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
View file @
fa80fff4
...
@@ -466,7 +466,7 @@ public class ExoneraTorServlet extends HttpServlet {
...
@@ -466,7 +466,7 @@ public class ExoneraTorServlet extends HttpServlet {
contactLink
);
contactLink
);
}
}
private
void
writeSummaryAddressesInSameNetwork
(
PrintWriter
out
,
void
writeSummaryAddressesInSameNetwork
(
PrintWriter
out
,
ResourceBundle
rb
,
String
relayIp
,
String
timestampStr
,
String
langStr
,
ResourceBundle
rb
,
String
relayIp
,
String
timestampStr
,
String
langStr
,
List
<
String
>
addressesInSameNetwork
)
throws
IOException
{
List
<
String
>
addressesInSameNetwork
)
throws
IOException
{
Object
[][]
panelItems
=
new
Object
[
addressesInSameNetwork
.
size
()][];
Object
[][]
panelItems
=
new
Object
[
addressesInSameNetwork
.
size
()][];
...
@@ -475,10 +475,10 @@ public class ExoneraTorServlet extends HttpServlet {
...
@@ -475,10 +475,10 @@ public class ExoneraTorServlet extends HttpServlet {
String
link
;
String
link
;
String
address
;
String
address
;
if
(
addressInSameNetwork
.
contains
(
":"
))
{
if
(
addressInSameNetwork
.
contains
(
":"
))
{
address
=
addressInSameNetwork
.
replaceAll
(
"[\\[\\]]"
,
""
);
link
=
String
.
format
(
"/?ip=[%s]×tamp=%s&lang=%s"
,
link
=
String
.
format
(
"/?ip=[%s]×tamp=%s&lang=%s"
,
addressInSameNetwork
.
replaceAll
(
":"
,
"%3A"
),
timestampStr
,
address
.
replaceAll
(
":"
,
"%3A"
),
timestampStr
,
langStr
);
langStr
);
address
=
"["
+
address
+
"]"
;
address
=
"["
+
addressInSameNetwork
+
"]"
;
}
else
{
}
else
{
link
=
String
.
format
(
"/?ip=%s×tamp=%s&lang=%s"
,
link
=
String
.
format
(
"/?ip=%s×tamp=%s&lang=%s"
,
addressInSameNetwork
,
timestampStr
,
langStr
);
addressInSameNetwork
,
timestampStr
,
langStr
);
...
...
src/test/java/org/torproject/metrics/exonerator/ExoneraTorServletTest.java
View file @
fa80fff4
...
@@ -4,9 +4,17 @@
...
@@ -4,9 +4,17 @@
package
org.torproject.metrics.exonerator
;
package
org.torproject.metrics.exonerator
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
org.junit.Test
;
import
org.junit.Test
;
import
java.io.PrintWriter
;
import
java.io.StringReader
;
import
java.io.StringWriter
;
import
java.util.Arrays
;
import
java.util.Locale
;
import
java.util.ResourceBundle
;
public
class
ExoneraTorServletTest
{
public
class
ExoneraTorServletTest
{
private
static
final
String
[][]
ipTestData
private
static
final
String
[][]
ipTestData
...
@@ -32,5 +40,55 @@ public class ExoneraTorServletTest {
...
@@ -32,5 +40,55 @@ public class ExoneraTorServletTest {
assertEquals
(
data
[
1
],
ExoneraTorServlet
.
parseIpParameter
(
data
[
0
]));
assertEquals
(
data
[
1
],
ExoneraTorServlet
.
parseIpParameter
(
data
[
0
]));
}
}
}
}
@Test
public
void
testNearbyIpV6Response
()
throws
Exception
{
ExoneraTorServlet
es
=
new
ExoneraTorServlet
();
ResourceBundle
rb
=
ResourceBundle
.
getBundle
(
"ExoneraTor"
,
Locale
.
forLanguageTag
(
"en"
));
for
(
QueryResponse
qr
:
qrs
)
{
StringWriter
sw
=
new
StringWriter
();
es
.
writeSummaryAddressesInSameNetwork
(
new
PrintWriter
(
sw
),
rb
,
qr
.
queryAddress
,
qr
.
queryDate
,
"en"
,
Arrays
.
asList
(
qr
.
nearbyAddresses
));
String
errorMsg
=
"Test data:"
+
QueryResponse
.
toJson
(
qr
)
+
"\nresult:\n"
+
sw
.
toString
();
assertTrue
(
errorMsg
,
sw
.
toString
().
contains
(
"Result is negative"
));
assertTrue
(
errorMsg
,
sw
.
toString
().
contains
(
"ip=[2a06%3Ae80%3A1%3A%3A10]&"
));
assertTrue
(
errorMsg
,
sw
.
toString
().
contains
(
"ip=[2a06%3Ae80%3A1%3A%3A15]&"
));
}
}
private
QueryResponse
[]
qrs
=
new
QueryResponse
[]{
QueryResponse
.
fromJson
(
new
StringReader
(
"{\"version\":\"1.0\","
+
"\"query_address\":\"2a06:e80:1::11\","
+
"\"query_date\":\"2016-12-12\","
+
"\"first_date_in_database\":\"2016-01-01\","
+
"\"last_date_in_database\":\"2016-12-31\","
+
"\"relevant_statuses\":false,"
+
"\"nearby_addresses\":[\"2a06:e80:1::10\","
+
"\"2a06:e80:1::15\"]}"
)),
QueryResponse
.
fromJson
(
new
StringReader
(
"{\"version\":\"1.0\","
+
"\"query_address\":\"2a06:e80:1::11\","
+
"\"query_date\":\"2016-12-12\","
+
"\"first_date_in_database\":\"2016-01-01\","
+
"\"last_date_in_database\":\"2016-12-31\","
+
"\"relevant_statuses\":false,"
+
"\"nearby_addresses\":[\"[2a06:e80:1::10]\","
+
"\"2a06:e80:1::15\"]}"
)),
QueryResponse
.
fromJson
(
new
StringReader
(
"{\"version\":\"1.0\","
+
"\"query_address\":\"2a06:e80:1::11\","
+
"\"query_date\":\"2016-12-12\","
+
"\"first_date_in_database\":\"2016-01-01\","
+
"\"last_date_in_database\":\"2016-12-31\","
+
"\"relevant_statuses\":false,"
+
"\"nearby_addresses\":[\"[2a06:e80:1::10]\","
+
"\"[2a06:e80:1::15]\"]}"
))};
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment