commit c3079ae2ecbed0994273b7986e3cf19160f55153 Author: Karsten Loesing karsten.loesing@gmx.net Date: Wed Jan 25 11:27:09 2017 +0100
Remove 604 checkstyle complaints.
Resolves #21144. --- .../descriptor/DescriptorSourceFactory.java | 3 +- .../descriptor/impl/DescriptorReaderImpl.java | 3 +- .../descriptor/DescriptorSourceFactoryTest.java | 82 ++--- .../descriptor/DummyCollectorImplementation.java | 15 + .../descriptor/DummyDownloaderImplementation.java | 15 + .../descriptor/DummyParserImplementation.java | 15 + .../descriptor/DummyReaderImplementation.java | 15 + .../descriptor/benchmark/MeasurePerformance.java | 22 +- .../descriptor/impl/BridgeNetworkStatusTest.java | 24 +- .../descriptor/impl/ConsensusBuilder.java | 55 +++- .../impl/DescriptorCollectorImplTest.java | 5 +- .../descriptor/impl/DescriptorReaderImplTest.java | 1 + .../descriptor/impl/ExitListImplTest.java | 10 +- .../impl/ExtraInfoDescriptorImplTest.java | 231 ++++++++++---- .../descriptor/impl/MicrodescriptorImplTest.java | 16 +- .../impl/RelayNetworkStatusConsensusImplTest.java | 97 ++++-- .../impl/RelayNetworkStatusImplTest.java | 47 ++- .../impl/RelayNetworkStatusVoteImplTest.java | 111 +++++-- .../descriptor/impl/ServerDescriptorImplTest.java | 338 ++++++++++++--------- .../descriptor/impl/TorperfResultImplTest.java | 10 +- 20 files changed, 772 insertions(+), 343 deletions(-)
diff --git a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java index efdc5cf..77d8740 100644 --- a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java +++ b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java @@ -34,7 +34,8 @@ import org.slf4j.LoggerFactory; * descriptor downloader:</p> * * <p><code> - * java -Ddescriptor.downloader=my.special.descriptorimpl.Downloader my.app.Mainclass + * java -Ddescriptor.downloader=my.special.descriptorimpl.Downloader \ + * my.app.Mainclass * </code></p> * * @since 1.0.0 diff --git a/src/main/java/org/torproject/descriptor/impl/DescriptorReaderImpl.java b/src/main/java/org/torproject/descriptor/impl/DescriptorReaderImpl.java index 2cbb6c8..cb14588 100644 --- a/src/main/java/org/torproject/descriptor/impl/DescriptorReaderImpl.java +++ b/src/main/java/org/torproject/descriptor/impl/DescriptorReaderImpl.java @@ -36,7 +36,8 @@ import java.util.TreeMap;
public class DescriptorReaderImpl implements DescriptorReader {
- private static Logger log = LoggerFactory.getLogger(DescriptorReaderImpl.class); + private static Logger log = LoggerFactory.getLogger( + DescriptorReaderImpl.class); private boolean hasStartedReading = false;
private List<File> directories = new ArrayList<>(); diff --git a/src/test/java/org/torproject/descriptor/DescriptorSourceFactoryTest.java b/src/test/java/org/torproject/descriptor/DescriptorSourceFactoryTest.java index d8990ac..9e0b5ff 100644 --- a/src/test/java/org/torproject/descriptor/DescriptorSourceFactoryTest.java +++ b/src/test/java/org/torproject/descriptor/DescriptorSourceFactoryTest.java @@ -1,42 +1,46 @@ /* Copyright 2016--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor;
-import static org.torproject.descriptor.DescriptorSourceFactory.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.torproject.descriptor.DescriptorSourceFactory.COLLECTOR_DEFAULT; +import static org.torproject.descriptor.DescriptorSourceFactory.COLLECTOR_PROPERTY; +import static org.torproject.descriptor.DescriptorSourceFactory.DOWNLOADER_DEFAULT; +import static org.torproject.descriptor.DescriptorSourceFactory.DOWNLOADER_PROPERTY; +import static org.torproject.descriptor.DescriptorSourceFactory.PARSER_DEFAULT; +import static org.torproject.descriptor.DescriptorSourceFactory.PARSER_PROPERTY; +import static org.torproject.descriptor.DescriptorSourceFactory.READER_DEFAULT; +import static org.torproject.descriptor.DescriptorSourceFactory.READER_PROPERTY;
-import org.torproject.descriptor.DescriptorCollector; -import org.torproject.descriptor.DescriptorDownloader; -import org.torproject.descriptor.DescriptorParser; -import org.torproject.descriptor.DescriptorReader; -import org.torproject.descriptor.ImplementationNotAccessibleException; import org.torproject.descriptor.impl.DescriptorDownloaderImpl; import org.torproject.descriptor.impl.DescriptorParserImpl; import org.torproject.descriptor.impl.DescriptorReaderImpl; import org.torproject.descriptor.index.DescriptorIndexCollector;
-import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - import org.junit.Test;
-import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method;
public class DescriptorSourceFactoryTest {
- private final static String[] properties = new String[]{ - COLLECTOR_PROPERTY, DOWNLOADER_PROPERTY, PARSER_PROPERTY, READER_PROPERTY}; - private final static String[] defaults = new String[]{ - COLLECTOR_DEFAULT, DOWNLOADER_DEFAULT, PARSER_DEFAULT, READER_DEFAULT}; + private static final String[] properties = new String[] { COLLECTOR_PROPERTY, + DOWNLOADER_PROPERTY, PARSER_PROPERTY, READER_PROPERTY }; + + private static final String[] defaults = new String[] { COLLECTOR_DEFAULT, + DOWNLOADER_DEFAULT, PARSER_DEFAULT, READER_DEFAULT };
@Test() public void testDefaults() { setProperties(defaults); - DescriptorCollector dc = DescriptorSourceFactory.createDescriptorCollector(); + DescriptorCollector dc = + DescriptorSourceFactory.createDescriptorCollector(); assertTrue(dc instanceof DescriptorIndexCollector); - DescriptorDownloader dd = DescriptorSourceFactory.createDescriptorDownloader(); + DescriptorDownloader dd = + DescriptorSourceFactory.createDescriptorDownloader(); assertTrue(dd instanceof DescriptorDownloaderImpl); DescriptorParser dp = DescriptorSourceFactory.createDescriptorParser(); assertTrue(dp instanceof DescriptorParserImpl); @@ -66,7 +70,7 @@ public class DescriptorSourceFactoryTest { retrieve.setAccessible(true); retrieve.invoke(null, "unknown.property"); } catch (InvocationTargetException ite) { - if(ite.getCause() instanceof ImplementationNotAccessibleException) { + if (ite.getCause() instanceof ImplementationNotAccessibleException) { return; } else { fail("Cause was " + ite.getCause() @@ -79,16 +83,17 @@ public class DescriptorSourceFactoryTest {
@Test() public void testProperties() { - setProperties(new String[]{ + setProperties(new String[] { "org.torproject.descriptor.DummyCollectorImplementation", "org.torproject.descriptor.DummyDownloaderImplementation", "org.torproject.descriptor.DummyParserImplementation", - "org.torproject.descriptor.DummyReaderImplementation", - }); - DescriptorCollector dc = DescriptorSourceFactory.createDescriptorCollector(); + "org.torproject.descriptor.DummyReaderImplementation" }); + DescriptorCollector dc = + DescriptorSourceFactory.createDescriptorCollector(); assertTrue(dc instanceof DummyCollectorImplementation); assertEquals(1, DummyCollectorImplementation.count); - DescriptorDownloader dd = DescriptorSourceFactory.createDescriptorDownloader(); + DescriptorDownloader dd = + DescriptorSourceFactory.createDescriptorDownloader(); assertTrue(dd instanceof DummyDownloaderImplementation); assertEquals(1, DummyDownloaderImplementation.count); DescriptorParser dp = DescriptorSourceFactory.createDescriptorParser(); @@ -98,33 +103,4 @@ public class DescriptorSourceFactoryTest { assertTrue(dr instanceof DummyReaderImplementation); assertEquals(1, DummyReaderImplementation.count); } - -} - -class DummyCollectorImplementation extends DescriptorIndexCollector { - static int count; - public DummyCollectorImplementation() { - count++; - } -} - -class DummyDownloaderImplementation extends DescriptorDownloaderImpl { - static int count; - public DummyDownloaderImplementation() { - count++; - } -} - -class DummyParserImplementation extends DescriptorParserImpl { - static int count; - public DummyParserImplementation() { - count++; - } -} - -class DummyReaderImplementation extends DescriptorReaderImpl { - static int count; - public DummyReaderImplementation() { - count++; - } } diff --git a/src/test/java/org/torproject/descriptor/DummyCollectorImplementation.java b/src/test/java/org/torproject/descriptor/DummyCollectorImplementation.java new file mode 100644 index 0000000..130a718 --- /dev/null +++ b/src/test/java/org/torproject/descriptor/DummyCollectorImplementation.java @@ -0,0 +1,15 @@ +/* Copyright 2016--2017 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.descriptor; + +import org.torproject.descriptor.index.DescriptorIndexCollector; + +class DummyCollectorImplementation extends DescriptorIndexCollector { + + static int count; + + public DummyCollectorImplementation() { + count++; + } +} diff --git a/src/test/java/org/torproject/descriptor/DummyDownloaderImplementation.java b/src/test/java/org/torproject/descriptor/DummyDownloaderImplementation.java new file mode 100644 index 0000000..dce3372 --- /dev/null +++ b/src/test/java/org/torproject/descriptor/DummyDownloaderImplementation.java @@ -0,0 +1,15 @@ +/* Copyright 2016--2017 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.descriptor; + +import org.torproject.descriptor.impl.DescriptorDownloaderImpl; + +class DummyDownloaderImplementation extends DescriptorDownloaderImpl { + + static int count; + + public DummyDownloaderImplementation() { + count++; + } +} diff --git a/src/test/java/org/torproject/descriptor/DummyParserImplementation.java b/src/test/java/org/torproject/descriptor/DummyParserImplementation.java new file mode 100644 index 0000000..42e67c9 --- /dev/null +++ b/src/test/java/org/torproject/descriptor/DummyParserImplementation.java @@ -0,0 +1,15 @@ +/* Copyright 2016--2017 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.descriptor; + +import org.torproject.descriptor.impl.DescriptorParserImpl; + +class DummyParserImplementation extends DescriptorParserImpl { + + static int count; + + public DummyParserImplementation() { + count++; + } +} diff --git a/src/test/java/org/torproject/descriptor/DummyReaderImplementation.java b/src/test/java/org/torproject/descriptor/DummyReaderImplementation.java new file mode 100644 index 0000000..8f74337 --- /dev/null +++ b/src/test/java/org/torproject/descriptor/DummyReaderImplementation.java @@ -0,0 +1,15 @@ +/* Copyright 2016--2017 The Tor Project + * See LICENSE for licensing information */ + +package org.torproject.descriptor; + +import org.torproject.descriptor.impl.DescriptorReaderImpl; + +class DummyReaderImplementation extends DescriptorReaderImpl { + + static int count; + + public DummyReaderImplementation() { + count++; + } +} diff --git a/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java b/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java index 4c36ae4..a0c923c 100644 --- a/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java +++ b/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java @@ -1,5 +1,6 @@ /* Copyright 2016--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.benchmark;
import org.torproject.descriptor.Descriptor; @@ -20,7 +21,7 @@ import java.util.SortedMap;
public class MeasurePerformance {
- /* Check if all necessary files are available and then measure + /** Check if all necessary files are available and then measure * performance of some more or less common use cases. */ public static void main(String[] args) { if (!filesAvailable()) { @@ -88,8 +89,9 @@ public class MeasurePerformance { private static void measureAverageAdvertisedBandwidth( File tarballFileOrDirectory) { System.out.println("Starting measureAverageAdvertisedBandwidth"); - long startedMillis = System.currentTimeMillis(); - long sumAdvertisedBandwidth = 0, countedServerDescriptors = 0; + final long startedMillis = System.currentTimeMillis(); + long sumAdvertisedBandwidth = 0; + long countedServerDescriptors = 0; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFileOrDirectory); @@ -125,7 +127,7 @@ public class MeasurePerformance {
private static void measureCountriesV3Requests(File tarballFile) { System.out.println("Starting measureCountriesV3Requests"); - long startedMillis = System.currentTimeMillis(); + final long startedMillis = System.currentTimeMillis(); Set<String> countries = new HashSet<>(); long countedExtraInfoDescriptors = 0; DescriptorReader descriptorReader = @@ -165,9 +167,10 @@ public class MeasurePerformance { private static void measureAverageRelaysExit( File tarballFileOrDirectory) { System.out.println("Starting measureAverageRelaysExit"); - long startedMillis = System.currentTimeMillis(); - long totalRelaysWithExitFlag = 0L, totalRelays = 0L, - countedConsensuses = 0L; + final long startedMillis = System.currentTimeMillis(); + long totalRelaysWithExitFlag = 0L; + long totalRelays = 0L; + long countedConsensuses = 0L; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFileOrDirectory); @@ -212,8 +215,9 @@ public class MeasurePerformance { File tarballFile) { System.out.println("Starting " + "measureFractionRelaysExit80Microdescriptors"); - long startedMillis = System.currentTimeMillis(); - long totalRelaysWithExitFlag = 0L, countedMicrodescriptors = 0L; + final long startedMillis = System.currentTimeMillis(); + long totalRelaysWithExitFlag = 0L; + long countedMicrodescriptors = 0L; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFile); diff --git a/src/test/java/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java b/src/test/java/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java index d1a083e..8720d7b 100644 --- a/src/test/java/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java +++ b/src/test/java/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java @@ -1,17 +1,19 @@ /* Copyright 2015--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue;
-import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; import org.torproject.descriptor.BridgeNetworkStatus; import org.torproject.descriptor.DescriptorParseException;
+import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + /* Test parsing of bridge network statuses. Some of the parsing code is * already tested in the consensus/vote-parsing tests. */ public class BridgeNetworkStatusTest { @@ -19,8 +21,10 @@ public class BridgeNetworkStatusTest { /* Helper class to build a bridge network status based on default data * and modifications requested by test methods. */ private static class StatusBuilder { + private String fileName = "20151121-173936-" + "4A0CCD2DDC7995083D73F5D667100C8A5831F16D"; + private static BridgeNetworkStatus createWithFileName(String fileName) throws DescriptorParseException { @@ -29,7 +33,9 @@ public class BridgeNetworkStatusTest { return new BridgeNetworkStatusImpl(sb.buildStatus(), sb.fileName, true); } + private String publishedLine = "published 2015-11-21 17:39:36"; + private static BridgeNetworkStatus createWithPublishedLine(String line) throws DescriptorParseException { @@ -38,11 +44,13 @@ public class BridgeNetworkStatusTest { return new BridgeNetworkStatusImpl(sb.buildStatus(), sb.fileName, true); } + private String flagThresholdsLine = "flag-thresholds " + "stable-uptime=3105080 stable-mtbf=2450615 fast-speed=55000 " + "guard-wfu=98.000% guard-tk=691200 guard-bw-inc-exits=337000 " + "guard-bw-exc-exits=339000 enough-mtbf=1 " + "ignoring-advertised-bws=0"; + private static BridgeNetworkStatus createWithFlagThresholdsLine(String line) throws DescriptorParseException { @@ -51,8 +59,11 @@ public class BridgeNetworkStatusTest { return new BridgeNetworkStatusImpl(sb.buildStatus(), sb.fileName, true); } + private List<String> statusEntries = new ArrayList<>(); + private String unrecognizedHeaderLine = null; + protected static BridgeNetworkStatus createWithUnrecognizedHeaderLine(String line, boolean failUnrecognizedDescriptorLines) @@ -62,7 +73,9 @@ public class BridgeNetworkStatusTest { return new BridgeNetworkStatusImpl(sb.buildStatus(), sb.fileName, failUnrecognizedDescriptorLines); } + private String unrecognizedStatusEntryLine = null; + protected static BridgeNetworkStatus createWithUnrecognizedStatusEntryLine(String line, boolean failUnrecognizedDescriptorLines) @@ -79,12 +92,14 @@ public class BridgeNetworkStatusTest { + "10.153.163.200 443 0\ns Fast Running Stable Valid\n" + "w Bandwidth=264\np reject 1-65535"); } + private byte[] buildStatus() { StringBuilder sb = new StringBuilder(); this.appendHeader(sb); this.appendStatusEntries(sb); return sb.toString().getBytes(); } + private void appendHeader(StringBuilder sb) { if (this.publishedLine != null) { sb.append(this.publishedLine).append("\n"); @@ -96,6 +111,7 @@ public class BridgeNetworkStatusTest { sb.append(this.unrecognizedHeaderLine).append("\n"); } } + private void appendStatusEntries(StringBuilder sb) { for (String statusEntry : this.statusEntries) { sb.append(statusEntry).append("\n"); diff --git a/src/test/java/org/torproject/descriptor/impl/ConsensusBuilder.java b/src/test/java/org/torproject/descriptor/impl/ConsensusBuilder.java index fccd33b..b765be6 100644 --- a/src/test/java/org/torproject/descriptor/impl/ConsensusBuilder.java +++ b/src/test/java/org/torproject/descriptor/impl/ConsensusBuilder.java @@ -1,17 +1,20 @@ /* Copyright 2012--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import org.torproject.descriptor.DescriptorParseException; +import org.torproject.descriptor.RelayNetworkStatusConsensus; + import java.util.ArrayList; import java.util.List;
-import org.torproject.descriptor.RelayNetworkStatusConsensus; - /* Helper class to build a consensus based on default data and * modifications requested by test methods. */ public class ConsensusBuilder { + String networkStatusVersionLine = "network-status-version 3"; + protected static RelayNetworkStatusConsensus createWithNetworkStatusVersionLine(String line) throws DescriptorParseException { @@ -19,7 +22,9 @@ public class ConsensusBuilder { cb.networkStatusVersionLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String voteStatusLine = "vote-status consensus"; + protected static RelayNetworkStatusConsensus createWithVoteStatusLine(String line) throws DescriptorParseException { @@ -27,7 +32,9 @@ public class ConsensusBuilder { cb.voteStatusLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String consensusMethodLine = "consensus-method 11"; + protected static RelayNetworkStatusConsensus createWithConsensusMethodLine(String line) throws DescriptorParseException { @@ -35,7 +42,9 @@ public class ConsensusBuilder { cb.consensusMethodLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String validAfterLine = "valid-after 2011-11-30 09:00:00"; + protected static RelayNetworkStatusConsensus createWithValidAfterLine(String line) throws DescriptorParseException { @@ -43,7 +52,9 @@ public class ConsensusBuilder { cb.validAfterLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String freshUntilLine = "fresh-until 2011-11-30 10:00:00"; + protected static RelayNetworkStatusConsensus createWithFreshUntilLine(String line) throws DescriptorParseException { @@ -51,7 +62,9 @@ public class ConsensusBuilder { cb.freshUntilLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String validUntilLine = "valid-until 2011-11-30 12:00:00"; + protected static RelayNetworkStatusConsensus createWithValidUntilLine(String line) throws DescriptorParseException { @@ -59,7 +72,9 @@ public class ConsensusBuilder { cb.validUntilLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String votingDelayLine = "voting-delay 300 300"; + protected static RelayNetworkStatusConsensus createWithVotingDelayLine(String line) throws DescriptorParseException { @@ -67,8 +82,10 @@ public class ConsensusBuilder { cb.votingDelayLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + String clientVersionsLine = "client-versions 0.2.1.31," + "0.2.2.34,0.2.3.6-alpha,0.2.3.7-alpha,0.2.3.8-alpha"; + protected static RelayNetworkStatusConsensus createWithClientVersionsLine(String line) throws DescriptorParseException { @@ -76,8 +93,10 @@ public class ConsensusBuilder { cb.clientVersionsLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + String serverVersionsLine = "server-versions 0.2.1.31," + "0.2.2.34,0.2.3.6-alpha,0.2.3.7-alpha,0.2.3.8-alpha"; + protected static RelayNetworkStatusConsensus createWithServerVersionsLine(String line) throws DescriptorParseException { @@ -85,7 +104,9 @@ public class ConsensusBuilder { cb.serverVersionsLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String packageLines = null; + protected static RelayNetworkStatusConsensus createWithPackageLines(String lines) throws DescriptorParseException { @@ -93,8 +114,10 @@ public class ConsensusBuilder { cb.packageLines = lines; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String knownFlagsLine = "known-flags Authority BadExit Exit " + "Fast Guard HSDir Named Running Stable Unnamed V2Dir Valid"; + protected static RelayNetworkStatusConsensus createWithKnownFlagsLine(String line) throws DescriptorParseException { @@ -102,11 +125,13 @@ public class ConsensusBuilder { cb.knownFlagsLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String paramsLine = "params " + "CircuitPriorityHalflifeMsec=30000 bwauthbestratio=1 " + "bwauthcircs=1 bwauthdescbw=0 bwauthkp=10000 bwauthpid=1 " + "bwauthtd=5000 bwauthti=50000 bwauthtidecay=5000 cbtnummodes=3 " + "cbtquantile=80 circwindow=1000 refuseunknownexits=1"; + protected static RelayNetworkStatusConsensus createWithParamsLine(String line) throws DescriptorParseException { @@ -114,12 +139,17 @@ public class ConsensusBuilder { cb.paramsLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + List<String> dirSources = new ArrayList<>(); + List<String> statusEntries = new ArrayList<>(); + private String directoryFooterLine = "directory-footer"; + protected void setDirectoryFooterLine(String line) { this.directoryFooterLine = line; } + protected static RelayNetworkStatusConsensus createWithDirectoryFooterLine(String line) throws DescriptorParseException { @@ -127,13 +157,16 @@ public class ConsensusBuilder { cb.directoryFooterLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String bandwidthWeightsLine = "bandwidth-weights Wbd=285 " + "Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=1021 Wee=10000 " + "Weg=1021 Wem=10000 Wgb=10000 Wgd=8694 Wgg=10000 Wgm=10000 " + "Wmb=10000 Wmd=285 Wme=0 Wmg=0 Wmm=10000"; + protected void setBandwidthWeightsLine(String line) { this.bandwidthWeightsLine = line; } + protected static RelayNetworkStatusConsensus createWithBandwidthWeightsLine(String line) throws DescriptorParseException { @@ -141,11 +174,15 @@ public class ConsensusBuilder { cb.bandwidthWeightsLine = line; return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private List<String> directorySignatures = new ArrayList<>(); + protected void addDirectorySignature(String directorySignatureString) { this.directorySignatures.add(directorySignatureString); } + private String unrecognizedHeaderLine = null; + protected static RelayNetworkStatusConsensus createWithUnrecognizedHeaderLine(String line, boolean failUnrecognizedDescriptorLines) @@ -155,7 +192,9 @@ public class ConsensusBuilder { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), failUnrecognizedDescriptorLines); } + private String unrecognizedDirSourceLine = null; + protected static RelayNetworkStatusConsensus createWithUnrecognizedDirSourceLine(String line, boolean failUnrecognizedDescriptorLines) @@ -165,7 +204,9 @@ public class ConsensusBuilder { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), failUnrecognizedDescriptorLines); } + private String unrecognizedStatusEntryLine = null; + protected static RelayNetworkStatusConsensus createWithUnrecognizedStatusEntryLine(String line, boolean failUnrecognizedDescriptorLines) @@ -175,7 +216,9 @@ public class ConsensusBuilder { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), failUnrecognizedDescriptorLines); } + private String unrecognizedFooterLine = null; + protected static RelayNetworkStatusConsensus createWithUnrecognizedFooterLine(String line, boolean failUnrecognizedDescriptorLines) @@ -185,7 +228,9 @@ public class ConsensusBuilder { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), failUnrecognizedDescriptorLines); } + private String unrecognizedDirectorySignatureLine = null; + protected static RelayNetworkStatusConsensus createWithUnrecognizedDirectorySignatureLine(String line, boolean failUnrecognizedDescriptorLines) @@ -232,6 +277,7 @@ public class ConsensusBuilder { + "oQA/qeby7E\n5374pPPL6WwCLJHkKtk21S9oHDmFBdlZq7JWQelWlVM=\n" + "-----END SIGNATURE-----"); } + protected byte[] buildConsensus() { StringBuilder sb = new StringBuilder(); this.appendHeader(sb); @@ -241,6 +287,7 @@ public class ConsensusBuilder { this.appendDirectorySignatures(sb); return sb.toString().getBytes(); } + private void appendHeader(StringBuilder sb) { if (this.networkStatusVersionLine != null) { sb.append(this.networkStatusVersionLine).append("\n"); @@ -282,6 +329,7 @@ public class ConsensusBuilder { sb.append(this.unrecognizedHeaderLine).append("\n"); } } + private void appendDirSources(StringBuilder sb) { for (String dirSource : this.dirSources) { sb.append(dirSource).append("\n"); @@ -290,6 +338,7 @@ public class ConsensusBuilder { sb.append(this.unrecognizedDirSourceLine).append("\n"); } } + private void appendStatusEntries(StringBuilder sb) { for (String statusEntry : this.statusEntries) { sb.append(statusEntry).append("\n"); @@ -298,6 +347,7 @@ public class ConsensusBuilder { sb.append(this.unrecognizedStatusEntryLine).append("\n"); } } + private void appendFooter(StringBuilder sb) { if (this.directoryFooterLine != null) { sb.append(this.directoryFooterLine).append("\n"); @@ -309,6 +359,7 @@ public class ConsensusBuilder { sb.append(this.unrecognizedFooterLine).append("\n"); } } + private void appendDirectorySignatures(StringBuilder sb) { for (String directorySignature : this.directorySignatures) { sb.append(directorySignature).append("\n"); diff --git a/src/test/java/org/torproject/descriptor/impl/DescriptorCollectorImplTest.java b/src/test/java/org/torproject/descriptor/impl/DescriptorCollectorImplTest.java index ad34528..45752b2 100644 --- a/src/test/java/org/torproject/descriptor/impl/DescriptorCollectorImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/DescriptorCollectorImplTest.java @@ -1,5 +1,6 @@ /* Copyright 2015--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; @@ -8,10 +9,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue;
-import java.util.SortedMap; - import org.junit.Test;
+import java.util.SortedMap; + public class DescriptorCollectorImplTest {
private static final String REMOTE_DIRECTORY_CONSENSUSES = diff --git a/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java b/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java index 5a418b9..0d3bdcf 100644 --- a/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java @@ -1,5 +1,6 @@ /* Copyright 2016--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; diff --git a/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java b/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java index 8bc81f9..916c4df 100644 --- a/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java @@ -1,17 +1,19 @@ /* Copyright 2015--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue;
-import java.util.HashMap; -import java.util.Map; - -import org.junit.Test; import org.torproject.descriptor.DescriptorParseException; import org.torproject.descriptor.ExitListEntry;
+import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + public class ExitListImplTest {
@Test() diff --git a/src/test/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java b/src/test/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java index fb38c86..096314e 100644 --- a/src/test/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java @@ -1,5 +1,6 @@ /* Copyright 2012--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; @@ -7,6 +8,13 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue;
+import org.torproject.descriptor.BridgeExtraInfoDescriptor; +import org.torproject.descriptor.DescriptorParseException; +import org.torproject.descriptor.ExtraInfoDescriptor; +import org.torproject.descriptor.RelayExtraInfoDescriptor; + +import org.junit.Test; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -14,138 +22,166 @@ import java.util.List; import java.util.Map; import java.util.SortedMap;
-import org.junit.Test; -import org.torproject.descriptor.BridgeExtraInfoDescriptor; -import org.torproject.descriptor.DescriptorParseException; -import org.torproject.descriptor.ExtraInfoDescriptor; -import org.torproject.descriptor.RelayExtraInfoDescriptor; - /* Test parsing of extra-info descriptors. */ public class ExtraInfoDescriptorImplTest {
/* Helper class to build a descriptor based on default data and * modifications requested by test methods. */ private static class DescriptorBuilder { + private String extraInfoLine = "extra-info chaoscomputerclub5 " + "A9C039A5FD02FCA06303DCFAABE25C5912C63B26"; + private static ExtraInfoDescriptor createWithExtraInfoLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.extraInfoLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String publishedLine = "published 2012-02-11 09:08:36"; + private static ExtraInfoDescriptor createWithPublishedLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.publishedLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String writeHistoryLine = "write-history 2012-02-11 09:03:39 " + "(900 s) 4713350144,4723824640,4710717440,4572675072"; + private static ExtraInfoDescriptor createWithWriteHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.writeHistoryLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String readHistoryLine = "read-history 2012-02-11 09:03:39 " + "(900 s) 4707695616,4699666432,4650004480,4489718784"; + private static ExtraInfoDescriptor createWithReadHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.readHistoryLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String dirreqWriteHistoryLine = "dirreq-write-history " + "2012-02-11 09:03:39 (900 s) 81281024,64996352,60625920," + "67922944"; + private static ExtraInfoDescriptor createWithDirreqWriteHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.dirreqWriteHistoryLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String dirreqReadHistoryLine = "dirreq-read-history " + "2012-02-11 09:03:39 (900 s) 17074176,16235520,16005120," + "16209920"; + private static ExtraInfoDescriptor createWithDirreqReadHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.dirreqReadHistoryLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String geoipDbDigestLine = null; + private static ExtraInfoDescriptor createWithGeoipDbDigestLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.geoipDbDigestLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String geoip6DbDigestLine = null; + private static ExtraInfoDescriptor createWithGeoip6DbDigestLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.geoip6DbDigestLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String geoipStatsLines = null; + private static ExtraInfoDescriptor createWithGeoipStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.geoipStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String dirreqStatsLines = null; + private static ExtraInfoDescriptor createWithDirreqStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.dirreqStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String entryStatsLines = null; + private static ExtraInfoDescriptor createWithEntryStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.entryStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String cellStatsLines = null; + private static ExtraInfoDescriptor createWithCellStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.cellStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String connBiDirectLine = null; + private static ExtraInfoDescriptor createWithConnBiDirectLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.connBiDirectLine = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String exitStatsLines = null; + private static ExtraInfoDescriptor createWithExitStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.exitStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String bridgeStatsLines = null; + private static ExtraInfoDescriptor createWithBridgeStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.bridgeStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String hidservStatsLines = null; + private static ExtraInfoDescriptor createWithHidservStatsLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.hidservStatsLines = lines; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private String unrecognizedLine = null; + private static ExtraInfoDescriptor createWithUnrecognizedLine( String line, boolean failUnrecognizedDescriptorLines) throws DescriptorParseException { @@ -154,7 +190,9 @@ public class ExtraInfoDescriptorImplTest { return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), failUnrecognizedDescriptorLines); } + private byte[] nonAsciiLineBytes = null; + private static ExtraInfoDescriptor createWithNonAsciiLineBytes( byte[] lineBytes, boolean failUnrecognizedDescriptorLines) throws DescriptorParseException { @@ -163,20 +201,27 @@ public class ExtraInfoDescriptorImplTest { return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), failUnrecognizedDescriptorLines); } + private String routerSignatureLines = "router-signature\n" + "-----BEGIN SIGNATURE-----\n" + "o4j+kH8UQfjBwepUnr99v0ebN8RpzHJ/lqYsTojXHy9kMr1RNI9IDeSzA7PSqT" + "uV\n4PL8QsGtlfwthtIoZpB2srZeyN/mcpA9fa1JXUrt/UN9K/+32Cyaad7h0n" + "HE6Xfb\njqpXDpnBpvk4zjmzjjKYnIsUWTnADmu0fo3xTRqXi7g=\n" + "-----END SIGNATURE-----"; + private static ExtraInfoDescriptor createWithRouterSignatureLines( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.routerSignatureLines = line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } - private String identityEd25519Lines = null, - masterKeyEd25519Line = null, routerSigEd25519Line = null; + + private String identityEd25519Lines = null; + + private String masterKeyEd25519Line = null; + + private String routerSigEd25519Line = null; + private static ExtraInfoDescriptor createWithEd25519Lines( String identityEd25519Lines, String masterKeyEd25519Line, String routerSigEd25519Line) throws DescriptorParseException { @@ -186,6 +231,7 @@ public class ExtraInfoDescriptorImplTest { db.routerSigEd25519Line = routerSigEd25519Line; return new RelayExtraInfoDescriptorImpl(db.buildDescriptor(), true); } + private byte[] buildDescriptor() { StringBuilder sb = new StringBuilder(); if (this.extraInfoLine != null) { @@ -272,8 +318,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of geoip-stats lines based on default * data and modifications requested by test methods. */ private static class GeoipStatsBuilder { + private String geoipStartTimeLine = "geoip-start-time 2012-02-10 " + "18:32:51"; + private static ExtraInfoDescriptor createWithGeoipStartTimeLine( String line) throws DescriptorParseException { GeoipStatsBuilder gsb = new GeoipStatsBuilder(); @@ -281,8 +329,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithGeoipStatsLines( gsb.buildGeoipStatsLines()); } + private String geoipClientOriginsLine = "geoip-client-origins " + "de=1152,cn=896,us=712,it=504,ru=352,fr=208,gb=208,ir=200"; + private static ExtraInfoDescriptor createWithGeoipClientOriginsLine( String line) throws DescriptorParseException { GeoipStatsBuilder gsb = new GeoipStatsBuilder(); @@ -290,11 +340,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithGeoipStatsLines( gsb.buildGeoipStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithGeoipStatsLines( new GeoipStatsBuilder().buildGeoipStatsLines()); } + private String buildGeoipStatsLines() { StringBuilder sb = new StringBuilder(); if (this.geoipStartTimeLine != null) { @@ -314,8 +366,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of dirreq-stats lines based on default * data and modifications requested by test methods. */ private static class DirreqStatsBuilder { + private String dirreqStatsEndLine = "dirreq-stats-end 2012-02-11 " + "00:59:53 (86400 s)"; + private static ExtraInfoDescriptor createWithDirreqStatsEndLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -323,8 +377,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3IpsLine = "dirreq-v3-ips us=1544,de=1056," + "it=1032,fr=784,es=640,ru=440,br=312,gb=272,kr=224,sy=192"; + private static ExtraInfoDescriptor createWithDirreqV3IpsLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -332,7 +388,9 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2IpsLine = "dirreq-v2-ips "; + private static ExtraInfoDescriptor createWithDirreqV2IpsLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -340,8 +398,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3ReqsLine = "dirreq-v3-reqs us=1744,de=1224," + "it=1080,fr=832,es=664,ru=536,br=344,gb=296,kr=272,in=216"; + private static ExtraInfoDescriptor createWithDirreqV3ReqsLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -349,7 +409,9 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2ReqsLine = "dirreq-v2-reqs "; + private static ExtraInfoDescriptor createWithDirreqV2ReqsLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -357,9 +419,11 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3RespLine = "dirreq-v3-resp ok=10848," + "not-enough-sigs=8,unavailable=0,not-found=0,not-modified=0," + "busy=80"; + private static ExtraInfoDescriptor createWithDirreqV3RespLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -367,8 +431,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2RespLine = "dirreq-v2-resp ok=0,unavailable=0," + "not-found=1576,not-modified=0,busy=0"; + private static ExtraInfoDescriptor createWithDirreqV2RespLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -376,7 +442,9 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2ShareLine = "dirreq-v2-share 0.37%"; + private static ExtraInfoDescriptor createWithDirreqV2ShareLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -384,7 +452,9 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3ShareLine = "dirreq-v3-share 0.37%"; + private static ExtraInfoDescriptor createWithDirreqV3ShareLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -392,10 +462,12 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3DirectDlLine = "dirreq-v3-direct-dl " + "complete=36,timeout=4,running=0,min=7538,d1=20224,d2=28950," + "q1=40969,d3=55786,d4=145813,md=199164,d6=267230,d7=480900," + "q3=481049,d8=531276,d9=778086,max=15079428"; + private static ExtraInfoDescriptor createWithDirreqV3DirectDlLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -403,8 +475,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2DirectDlLine = "dirreq-v2-direct-dl " + "complete=0,timeout=0,running=0"; + private static ExtraInfoDescriptor createWithDirreqV2DirectDlLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -412,10 +486,12 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV3TunneledDlLine = "dirreq-v3-tunneled-dl " + "complete=10608,timeout=204,running=4,min=507,d1=20399," + "d2=27588,q1=29292,d3=30889,d4=40624,md=59967,d6=103333," + "d7=161170,q3=209415,d8=256711,d9=452503,max=23417777"; + private static ExtraInfoDescriptor createWithDirreqV3TunneledDlLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -423,8 +499,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private String dirreqV2TunneledDlLine = "dirreq-v2-tunneled-dl " + "complete=0,timeout=0,running=0"; + private static ExtraInfoDescriptor createWithDirreqV2TunneledDlLine( String line) throws DescriptorParseException { DirreqStatsBuilder dsb = new DirreqStatsBuilder(); @@ -432,11 +510,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithDirreqStatsLines( dsb.buildDirreqStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithDirreqStatsLines( new DirreqStatsBuilder().buildDirreqStatsLines()); } + private String buildDirreqStatsLines() { StringBuilder sb = new StringBuilder(); if (this.dirreqStatsEndLine != null) { @@ -489,8 +569,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of entry-stats lines based on default * data and modifications requested by test methods. */ private static class EntryStatsBuilder { + private String entryStatsEndLine = "entry-stats-end 2012-02-11 " + "01:59:39 (86400 s)"; + private static ExtraInfoDescriptor createWithEntryStatsEndLine( String line) throws DescriptorParseException { EntryStatsBuilder esb = new EntryStatsBuilder(); @@ -498,9 +580,11 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithEntryStatsLines( esb.buildEntryStatsLines()); } + private String entryIpsLine = "entry-ips ir=25368,us=15744,it=14816," + "de=13256,es=8280,fr=8120,br=5176,sy=4760,ru=4504,sa=4216," + "gb=3152,pl=2928,nl=2208,kr=1856,ca=1792,ua=1272,in=1192"; + private static ExtraInfoDescriptor createWithEntryIpsLine( String line) throws DescriptorParseException { EntryStatsBuilder esb = new EntryStatsBuilder(); @@ -508,11 +592,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithEntryStatsLines( esb.buildEntryStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithEntryStatsLines( new EntryStatsBuilder().buildEntryStatsLines()); } + private String buildEntryStatsLines() { StringBuilder sb = new StringBuilder(); if (this.entryStatsEndLine != null) { @@ -532,8 +618,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of cell-stats lines based on default * data and modifications requested by test methods. */ private static class CellStatsBuilder { + private String cellStatsEndLine = "cell-stats-end 2012-02-11 " + "01:59:39 (86400 s)"; + private static ExtraInfoDescriptor createWithCellStatsEndLine( String line) throws DescriptorParseException { CellStatsBuilder csb = new CellStatsBuilder(); @@ -541,8 +629,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithCellStatsLines( csb.buildCellStatsLines()); } + private String cellProcessedCellsLine = "cell-processed-cells " + "1441,11,6,4,2,1,1,1,1,1"; + private static ExtraInfoDescriptor createWithCellProcessedCellsLine( String line) throws DescriptorParseException { CellStatsBuilder csb = new CellStatsBuilder(); @@ -550,8 +640,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithCellStatsLines( csb.buildCellStatsLines()); } + private String cellQueuedCellsLine = "cell-queued-cells " + "3.29,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00"; + private static ExtraInfoDescriptor createWithCellQueuedCellsLine( String line) throws DescriptorParseException { CellStatsBuilder csb = new CellStatsBuilder(); @@ -559,8 +651,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithCellStatsLines( csb.buildCellStatsLines()); } + private String cellTimeInQueueLine = "cell-time-in-queue " + "524,1,1,0,0,25,0,0,0,0"; + private static ExtraInfoDescriptor createWithCellTimeInQueueLine( String line) throws DescriptorParseException { CellStatsBuilder csb = new CellStatsBuilder(); @@ -568,8 +662,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithCellStatsLines( csb.buildCellStatsLines()); } + private String cellCircuitsPerDecileLine = "cell-circuits-per-decile " + "866"; + private static ExtraInfoDescriptor createWithCellCircuitsPerDecileLine(String line) throws DescriptorParseException { @@ -578,11 +674,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithCellStatsLines( csb.buildCellStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithCellStatsLines( new CellStatsBuilder().buildCellStatsLines()); } + private String buildCellStatsLines() { StringBuilder sb = new StringBuilder(); if (this.cellStatsEndLine != null) { @@ -611,8 +709,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of exit-stats lines based on default * data and modifications requested by test methods. */ private static class ExitStatsBuilder { + private String exitStatsEndLine = "exit-stats-end 2012-02-11 " + "01:59:39 (86400 s)"; + private static ExtraInfoDescriptor createWithExitStatsEndLine( String line) throws DescriptorParseException { ExitStatsBuilder esb = new ExitStatsBuilder(); @@ -620,9 +720,11 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithExitStatsLines( esb.buildExitStatsLines()); } + private String exitKibibytesWrittenLine = "exit-kibibytes-written " + "25=74647,80=31370,443=20577,49755=23,52563=12,52596=1111," + "57528=4,60912=11,61351=6,64811=3365,other=2592"; + private static ExtraInfoDescriptor createWithExitKibibytesWrittenLine( String line) throws DescriptorParseException { ExitStatsBuilder esb = new ExitStatsBuilder(); @@ -630,10 +732,12 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithExitStatsLines( esb.buildExitStatsLines()); } + private String exitKibibytesReadLine = "exit-kibibytes-read " + "25=35562,80=1254256,443=110279,49755=9396,52563=1911," + "52596=648,57528=1188,60912=1427,61351=1824,64811=14," + "other=3054"; + private static ExtraInfoDescriptor createWithExitKibibytesReadLine( String line) throws DescriptorParseException { ExitStatsBuilder esb = new ExitStatsBuilder(); @@ -641,9 +745,11 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithExitStatsLines( esb.buildExitStatsLines()); } + private String exitStreamsOpenedLine = "exit-streams-opened " + "25=369748,80=64212,443=151660,49755=4,52563=4,52596=4,57528=4," + "60912=4,61351=4,64811=4,other=1212"; + private static ExtraInfoDescriptor createWithExitStreamsOpenedLine( String line) throws DescriptorParseException { ExitStatsBuilder esb = new ExitStatsBuilder(); @@ -651,11 +757,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithExitStatsLines( esb.buildExitStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithExitStatsLines( new ExitStatsBuilder().buildExitStatsLines()); } + private String buildExitStatsLines() { StringBuilder sb = new StringBuilder(); if (this.exitStatsEndLine != null) { @@ -681,8 +789,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of bridge-stats lines based on default * data and modifications requested by test methods. */ private static class BridgeStatsBuilder { + private String bridgeStatsEndLine = "bridge-stats-end 2012-02-11 " + "01:59:39 (86400 s)"; + private static ExtraInfoDescriptor createWithBridgeStatsEndLine( String line) throws DescriptorParseException { BridgeStatsBuilder bsb = new BridgeStatsBuilder(); @@ -690,8 +800,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithBridgeStatsLines( bsb.buildBridgeStatsLines()); } + private String bridgeIpsLine = "bridge-ips ir=24,sy=16,??=8,cn=8," + "de=8,es=8,fr=8,gb=8,in=8,jp=8,kz=8,nl=8,ua=8,us=8,vn=8,za=8"; + private static ExtraInfoDescriptor createWithBridgeIpsLine( String line) throws DescriptorParseException { BridgeStatsBuilder bsb = new BridgeStatsBuilder(); @@ -699,7 +811,9 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithBridgeStatsLines( bsb.buildBridgeStatsLines()); } + private String bridgeIpVersionsLine = "bridge-ip-versions v4=8,v6=16"; + private static ExtraInfoDescriptor createWithBridgeIpVersionsLine( String line) throws DescriptorParseException { BridgeStatsBuilder bsb = new BridgeStatsBuilder(); @@ -707,8 +821,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithBridgeStatsLines( bsb.buildBridgeStatsLines()); } + private String bridgeIpTransportsLine = "bridge-ip-transports " + "<OR>=8,obfs2=792,obfs3=1728"; + private static ExtraInfoDescriptor createWithBridgeIpTransportsLine( String line) throws DescriptorParseException { BridgeStatsBuilder bsb = new BridgeStatsBuilder(); @@ -716,11 +832,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithBridgeStatsLines( bsb.buildBridgeStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithBridgeStatsLines( new BridgeStatsBuilder().buildBridgeStatsLines()); } + private String buildBridgeStatsLines() { StringBuilder sb = new StringBuilder(); if (this.bridgeStatsEndLine != null) { @@ -746,8 +864,10 @@ public class ExtraInfoDescriptorImplTest { /* Helper class to build a set of hidserv-stats lines based on default * data and modifications requested by test methods. */ private static class HidservStatsBuilder { + private String hidservStatsEndLine = "hidserv-stats-end 2015-12-03 " + "14:26:56 (86400 s)"; + private static ExtraInfoDescriptor createWithHidservStatsEndLine( String line) throws DescriptorParseException { HidservStatsBuilder hsb = new HidservStatsBuilder(); @@ -755,9 +875,11 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithHidservStatsLines( hsb.buildHidservStatsLines()); } + private String hidservRendRelayedCellsLine = "hidserv-rend-relayed-cells 36474281 delta_f=2048 epsilon=0.30 " + "bin_size=1024"; + private static ExtraInfoDescriptor createWithHidservRendRelayedCellsLine(String line) throws DescriptorParseException { @@ -766,8 +888,10 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithHidservStatsLines( hsb.buildHidservStatsLines()); } + private String hidservDirOnionsSeenLine = "hidserv-dir-onions-seen " + "-3 delta_f=8 epsilon=0.30 bin_size=8"; + private static ExtraInfoDescriptor createWithHidservDirOnionsSeenLine( String line) throws DescriptorParseException { HidservStatsBuilder hsb = new HidservStatsBuilder(); @@ -775,11 +899,13 @@ public class ExtraInfoDescriptorImplTest { return DescriptorBuilder.createWithHidservStatsLines( hsb.buildHidservStatsLines()); } + private static ExtraInfoDescriptor createWithDefaultLines() throws DescriptorParseException { return DescriptorBuilder.createWithHidservStatsLines( new HidservStatsBuilder().buildHidservStatsLines()); } + private String buildHidservStatsLines() { StringBuilder sb = new StringBuilder(); if (this.hidservStatsEndLine != null) { @@ -809,11 +935,11 @@ public class ExtraInfoDescriptorImplTest { descriptor.getFingerprint()); assertEquals(1328951316000L, descriptor.getPublishedMillis()); assertNotNull(descriptor.getWriteHistory()); - assertEquals(1328951019000L, descriptor.getWriteHistory(). - getHistoryEndMillis()); + assertEquals(1328951019000L, descriptor.getWriteHistory() + .getHistoryEndMillis()); assertEquals(900L, descriptor.getWriteHistory().getIntervalLength()); - assertEquals(4572675072L, (long) descriptor.getWriteHistory(). - getBandwidthValues().get(1328951019000L)); + assertEquals(4572675072L, (long) descriptor.getWriteHistory() + .getBandwidthValues().get(1328951019000L)); assertNotNull(descriptor.getReadHistory()); assertNotNull(descriptor.getDirreqWriteHistory()); assertNotNull(descriptor.getDirreqReadHistory()); @@ -826,8 +952,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testExtraInfoOpt() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithExtraInfoLine("opt extra-info chaoscomputerclub5 " + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithExtraInfoLine("opt extra-info chaoscomputerclub5 " + "A9C039A5FD02FCA06303DCFAABE25C5912C63B26"); assertEquals("chaoscomputerclub5", descriptor.getNickname()); assertEquals("A9C039A5FD02FCA06303DCFAABE25C5912C63B26", @@ -837,8 +963,8 @@ public class ExtraInfoDescriptorImplTest { @Test() public void testExtraInfoNicknameTwoSpaces() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithExtraInfoLine("opt extra-info chaoscomputerclub5 " + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithExtraInfoLine("opt extra-info chaoscomputerclub5 " + "A9C039A5FD02FCA06303DCFAABE25C5912C63B26"); assertEquals("chaoscomputerclub5", descriptor.getNickname()); assertEquals("A9C039A5FD02FCA06303DCFAABE25C5912C63B26", @@ -899,15 +1025,15 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testPublishedOpt() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithPublishedLine("opt published 2012-02-11 09:08:36"); + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithPublishedLine("opt published 2012-02-11 09:08:36"); assertEquals(1328951316000L, descriptor.getPublishedMillis()); }
@Test() public void testPublishedMillis() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithPublishedLine("opt published 2012-02-11 09:08:36.123"); + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithPublishedLine("opt published 2012-02-11 09:08:36.123"); assertEquals(1328951316000L, descriptor.getPublishedMillis()); }
@@ -977,8 +1103,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testGeoipDbDigestValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithGeoipDbDigestLine("geoip-db-digest " + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithGeoipDbDigestLine("geoip-db-digest " + "916A3CA8B7DF61473D5AE5B21711F35F301CE9E8"); assertEquals("916A3CA8B7DF61473D5AE5B21711F35F301CE9E8", descriptor.getGeoipDbDigest()); @@ -1006,8 +1132,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testGeoip6DbDigestValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithGeoip6DbDigestLine("geoip6-db-digest " + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithGeoip6DbDigestLine("geoip6-db-digest " + "916A3CA8B7DF61473D5AE5B21711F35F301CE9E8"); assertEquals("916A3CA8B7DF61473D5AE5B21711F35F301CE9E8", descriptor.getGeoip6DbDigest()); @@ -1015,8 +1141,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testGeoipStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = GeoipStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = GeoipStatsBuilder + .createWithDefaultLines(); assertEquals(1328898771000L, descriptor.getGeoipStartTimeMillis()); SortedMap<String, Integer> ips = descriptor.getGeoipClientOrigins(); assertNotNull(ips); @@ -1117,8 +1243,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testDirreqStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DirreqStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = DirreqStatsBuilder + .createWithDefaultLines(); assertEquals(1328921993000L, descriptor.getDirreqStatsEndMillis()); assertEquals(86400L, descriptor.getDirreqStatsIntervalLength()); SortedMap<String, Integer> ips = descriptor.getDirreqV3Ips(); @@ -1237,8 +1363,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testEntryStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = EntryStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = EntryStatsBuilder + .createWithDefaultLines(); assertEquals(1328925579000L, descriptor.getEntryStatsEndMillis()); assertEquals(86400L, descriptor.getEntryStatsIntervalLength()); SortedMap<String, Integer> ips = descriptor.getEntryIps(); @@ -1262,8 +1388,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testCellStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = CellStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = CellStatsBuilder + .createWithDefaultLines(); assertEquals(1328925579000L, descriptor.getCellStatsEndMillis()); assertEquals(86400L, descriptor.getCellStatsIntervalLength()); List<Integer> processedCells = descriptor.getCellProcessedCells(); @@ -1319,8 +1445,8 @@ public class ExtraInfoDescriptorImplTest { @Test() public void testConnBiDirectValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithConnBiDirectLine("conn-bi-direct 2012-02-11 01:59:39 " + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithConnBiDirectLine("conn-bi-direct 2012-02-11 01:59:39 " + "(86400 s) 42173,1591,1310,1744"); assertEquals(1328925579000L, descriptor.getConnBiDirectStatsEndMillis()); @@ -1340,35 +1466,35 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testExitStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = ExitStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = ExitStatsBuilder + .createWithDefaultLines(); assertEquals(1328925579000L, descriptor.getExitStatsEndMillis()); assertEquals(86400L, descriptor.getExitStatsIntervalLength()); String[] ports = new String[] { "25", "80", "443", "49755", "52563", "52596", "57528", "60912", "61351", "64811", "other" }; int[] writtenValues = new int[] { 74647, 31370, 20577, 23, 12, 1111, 4, 11, 6, 3365, 2592 }; - int i = 0; + int index = 0; for (Map.Entry<String, Long> e : descriptor.getExitKibibytesWritten().entrySet()) { - assertEquals(ports[i], e.getKey()); - assertEquals(writtenValues[i++], e.getValue().intValue()); + assertEquals(ports[index], e.getKey()); + assertEquals(writtenValues[index++], e.getValue().intValue()); } int[] readValues = new int[] { 35562, 1254256, 110279, 9396, 1911, 648, 1188, 1427, 1824, 14, 3054 }; - i = 0; + index = 0; for (Map.Entry<String, Long> e : descriptor.getExitKibibytesRead().entrySet()) { - assertEquals(ports[i], e.getKey()); - assertEquals(readValues[i++], e.getValue().intValue()); + assertEquals(ports[index], e.getKey()); + assertEquals(readValues[index++], e.getValue().intValue()); } int[] streamsValues = new int[] { 369748, 64212, 151660, 4, 4, 4, 4, 4, 4, 4, 1212 }; - i = 0; + index = 0; for (Map.Entry<String, Long> e : descriptor.getExitStreamsOpened().entrySet()) { - assertEquals(ports[i], e.getKey()); - assertEquals(streamsValues[i++], e.getValue().intValue()); + assertEquals(ports[index], e.getKey()); + assertEquals(streamsValues[index++], e.getValue().intValue()); } }
@@ -1416,8 +1542,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testBridgeStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = BridgeStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = BridgeStatsBuilder + .createWithDefaultLines(); assertEquals(1328925579000L, descriptor.getBridgeStatsEndMillis()); assertEquals(86400L, descriptor.getBridgeStatsIntervalLength()); SortedMap<String, Integer> ips = descriptor.getBridgeIps(); @@ -1482,8 +1608,8 @@ public class ExtraInfoDescriptorImplTest {
@Test() public void testHidservStatsValid() throws DescriptorParseException { - ExtraInfoDescriptor descriptor = HidservStatsBuilder. - createWithDefaultLines(); + ExtraInfoDescriptor descriptor = HidservStatsBuilder + .createWithDefaultLines(); assertEquals(1449152816000L, descriptor.getHidservStatsEndMillis()); assertEquals(86400L, descriptor.getHidservStatsIntervalLength()); assertEquals(36474281.0, descriptor.getHidservRendRelayedCells(), @@ -1575,8 +1701,8 @@ public class ExtraInfoDescriptorImplTest { public void testUnrecognizedLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - ExtraInfoDescriptor descriptor = DescriptorBuilder. - createWithUnrecognizedLine(unrecognizedLine, false); + ExtraInfoDescriptor descriptor = DescriptorBuilder + .createWithUnrecognizedLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, descriptor.getUnrecognizedLines()); @@ -1727,7 +1853,8 @@ public class ExtraInfoDescriptorImplTest { + "geoip6-db-digest 212DE17D5A368DCAFA19B95F168BFFA101145A93\n" + "router-digest-sha256 " + "TvrqpjI7OmCtwGwair/NHUxg5ROVVQYz6/EDyXsDHR4\n" - + "router-digest 00B98F076B586272C3172B7F3DA29ADEE75F2ED8\n").getBytes(); + + "router-digest 00B98F076B586272C3172B7F3DA29ADEE75F2ED8\n") + .getBytes(); BridgeExtraInfoDescriptor descriptor = new BridgeExtraInfoDescriptorImpl(descriptorBytes, true); assertEquals("TvrqpjI7OmCtwGwair/NHUxg5ROVVQYz6/EDyXsDHR4", diff --git a/src/test/java/org/torproject/descriptor/impl/MicrodescriptorImplTest.java b/src/test/java/org/torproject/descriptor/impl/MicrodescriptorImplTest.java index abb51db..20b0849 100644 --- a/src/test/java/org/torproject/descriptor/impl/MicrodescriptorImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/MicrodescriptorImplTest.java @@ -1,20 +1,19 @@ +/* Copyright 2015--2017 The Tor Project + * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
-import org.junit.Test; import org.torproject.descriptor.DescriptorParseException; import org.torproject.descriptor.Microdescriptor;
-import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import org.junit.Test;
public class MicrodescriptorImplTest {
/* Helper class to build a microdescriptor based on default data and * modifications requested by test methods. */ private static class DescriptorBuilder { + private String onionKeyLines = "onion-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIGJAoGBALNZ4pNsHHkl7a+kFWbBmPHNAepjjvuhjTr1TaMB3UKuCRaXJmS2Qr" @@ -22,20 +21,25 @@ public class MicrodescriptorImplTest { + "UutXaZ\nfkyty5XOgV4Qucx9wokzTMCHlO0V0x9y0FwFsK5Nb6ugqfQLLQ6XAg" + "MBAAE=\n" + "-----END RSA PUBLIC KEY-----"; + private static Microdescriptor createWithDefaultLines() throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); return new MicrodescriptorImpl(db.buildDescriptor(), true); } + private String ntorOnionKeyLine = "ntor-onion-key PXLa7IGE+TzPDMsM5j9rFnDa37rd6kfZa5QuzqqJukw="; + private String idLine = "id rsa1024 bvegfGxp8k7T9QFpjPTrPaJTa/8"; + private static Microdescriptor createWithIdLine(String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.idLine = line; return new MicrodescriptorImpl(db.buildDescriptor(), true); } + private byte[] buildDescriptor() { StringBuilder sb = new StringBuilder(); if (this.onionKeyLines != null) { diff --git a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java index 57a2d89..ebcbd83 100644 --- a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java @@ -1,9 +1,7 @@ /* Copyright 2011--2017 The Tor Project * See LICENSE for licensing information */ -package org.torproject.descriptor.impl;
-import org.torproject.descriptor.DescriptorParseException; -import org.torproject.descriptor.DirectorySignature; +package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -11,15 +9,17 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue;
+import org.torproject.descriptor.DescriptorParseException; +import org.torproject.descriptor.DirectorySignature; +import org.torproject.descriptor.NetworkStatusEntry; +import org.torproject.descriptor.RelayNetworkStatusConsensus; + +import org.junit.Test; + import java.util.ArrayList; import java.util.Arrays; import java.util.List;
- -import org.junit.Test; -import org.torproject.descriptor.NetworkStatusEntry; -import org.torproject.descriptor.RelayNetworkStatusConsensus; - /* TODO Add test cases for all lines starting with "opt ". */
/* Test parsing of network status consensuses. The main focus is on @@ -31,6 +31,7 @@ public class RelayNetworkStatusConsensusImplTest { /* Helper class to build a directory source based on default data and * modifications requested by test methods. */ private static class DirSourceBuilder { + private static RelayNetworkStatusConsensus createWithDirSource(String dirSourceString) throws DescriptorParseException { @@ -39,7 +40,9 @@ public class RelayNetworkStatusConsensusImplTest { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String nickname = "gabelmoo"; + private static RelayNetworkStatusConsensus createWithNickname(String string) throws DescriptorParseException { @@ -47,7 +50,9 @@ public class RelayNetworkStatusConsensusImplTest { dsb.nickname = string; return createWithDirSource(dsb.buildDirSource()); } + private String identity = "ED03BB616EB2F60BEC80151114BB25CEF515B226"; + private static RelayNetworkStatusConsensus createWithIdentity(String string) throws DescriptorParseException { @@ -55,7 +60,9 @@ public class RelayNetworkStatusConsensusImplTest { dsb.identity = string; return createWithDirSource(dsb.buildDirSource()); } + private String hostName = "212.112.245.170"; + private static RelayNetworkStatusConsensus createWithHostName(String string) throws DescriptorParseException { @@ -63,7 +70,9 @@ public class RelayNetworkStatusConsensusImplTest { dsb.hostName = string; return createWithDirSource(dsb.buildDirSource()); } + private String address = "212.112.245.170"; + private static RelayNetworkStatusConsensus createWithAddress(String string) throws DescriptorParseException { @@ -71,7 +80,9 @@ public class RelayNetworkStatusConsensusImplTest { dsb.address = string; return createWithDirSource(dsb.buildDirSource()); } + private String dirPort = "80"; + private static RelayNetworkStatusConsensus createWithDirPort(String string) throws DescriptorParseException { @@ -79,7 +90,9 @@ public class RelayNetworkStatusConsensusImplTest { dsb.dirPort = string; return createWithDirSource(dsb.buildDirSource()); } + private String orPort = "443"; + private static RelayNetworkStatusConsensus createWithOrPort(String string) throws DescriptorParseException { @@ -87,8 +100,10 @@ public class RelayNetworkStatusConsensusImplTest { dsb.orPort = string; return createWithDirSource(dsb.buildDirSource()); } + private String contactLine = "contact 4096R/C5AA446D Sebastian Hahn " + "tor@sebastianhahn.net"; + private static RelayNetworkStatusConsensus createWithContactLine(String line) throws DescriptorParseException { @@ -96,8 +111,10 @@ public class RelayNetworkStatusConsensusImplTest { dsb.contactLine = line; return createWithDirSource(dsb.buildDirSource()); } + private String voteDigestLine = "vote-digest 0F398A5834D2C139E1D92310B09F814F243354D1"; + private static RelayNetworkStatusConsensus createWithVoteDigestLine(String line) throws DescriptorParseException { @@ -105,6 +122,7 @@ public class RelayNetworkStatusConsensusImplTest { dsb.voteDigestLine = line; return createWithDirSource(dsb.buildDirSource()); } + private String buildDirSource() { StringBuilder sb = new StringBuilder(); String dirSourceLine = "dir-source " + this.nickname + " " @@ -127,6 +145,7 @@ public class RelayNetworkStatusConsensusImplTest { /* Helper class to build a status entry based on default data and * modifications requested by test methods. */ private static class StatusEntryBuilder { + private static RelayNetworkStatusConsensus createWithStatusEntry(String statusEntryString) throws DescriptorParseException { @@ -135,7 +154,9 @@ public class RelayNetworkStatusConsensusImplTest { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String nickname = "right2privassy3"; + private static RelayNetworkStatusConsensus createWithNickname(String string) throws DescriptorParseException { @@ -143,7 +164,9 @@ public class RelayNetworkStatusConsensusImplTest { seb.nickname = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String fingerprintBase64 = "ADQ6gCT3DiFHKPDFr3rODBUI8HM"; + private static RelayNetworkStatusConsensus createWithFingerprintBase64(String string) throws DescriptorParseException { @@ -151,7 +174,9 @@ public class RelayNetworkStatusConsensusImplTest { seb.fingerprintBase64 = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String descriptorBase64 = "Yiti+nayuT2Efe2X1+M4nslwVuU"; + private static RelayNetworkStatusConsensus createWithDescriptorBase64(String string) throws DescriptorParseException { @@ -159,7 +184,9 @@ public class RelayNetworkStatusConsensusImplTest { seb.descriptorBase64 = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String publishedString = "2011-11-29 21:34:27"; + private static RelayNetworkStatusConsensus createWithPublishedString(String string) throws DescriptorParseException { @@ -167,55 +194,75 @@ public class RelayNetworkStatusConsensusImplTest { seb.publishedString = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String address = "50.63.8.215"; + private static RelayNetworkStatusConsensus createWithAddress(String string) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.address = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String orPort = "9023"; + private static RelayNetworkStatusConsensus createWithOrPort(String string) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.orPort = string; return createWithStatusEntry(seb.buildStatusEntry()); } + private String dirPort = "0"; + private static RelayNetworkStatusConsensus createWithDirPort(String string) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.dirPort = string; return createWithStatusEntry(seb.buildStatusEntry()); } + + @SuppressWarnings("checkstyle:membername") private String sLine = "s Exit Fast Named Running Stable Valid"; + private static RelayNetworkStatusConsensus createWithSLine(String line) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.sLine = line; return createWithStatusEntry(seb.buildStatusEntry()); } + + @SuppressWarnings("checkstyle:membername") private String vLine = "v Tor 0.2.1.29 (r8e9b25e6c7a2e70c)"; + private static RelayNetworkStatusConsensus createWithVLine(String line) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.vLine = line; return createWithStatusEntry(seb.buildStatusEntry()); } + + @SuppressWarnings("checkstyle:membername") private String wLine = "w Bandwidth=1"; + private static RelayNetworkStatusConsensus createWithWLine(String line) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.wLine = line; return createWithStatusEntry(seb.buildStatusEntry()); } + + @SuppressWarnings("checkstyle:membername") private String pLine = "p accept 80,1194,1220,1293"; + private static RelayNetworkStatusConsensus createWithPLine(String line) throws DescriptorParseException { StatusEntryBuilder seb = new StatusEntryBuilder(); seb.pLine = line; return createWithStatusEntry(seb.buildStatusEntry()); } + + @SuppressWarnings("checkstyle:localvariablename") private String buildStatusEntry() { StringBuilder sb = new StringBuilder(); String rLine = "r " + nickname + " " + fingerprintBase64 + " " @@ -244,6 +291,7 @@ public class RelayNetworkStatusConsensusImplTest { /* Helper class to build a directory signature based on default data and * modifications requested by test methods. */ private static class DirectorySignatureBuilder { + private static RelayNetworkStatusConsensus createWithDirectorySignature(String directorySignatureString) throws DescriptorParseException { @@ -252,7 +300,9 @@ public class RelayNetworkStatusConsensusImplTest { return new RelayNetworkStatusConsensusImpl(cb.buildConsensus(), true); } + private String identity = "ED03BB616EB2F60BEC80151114BB25CEF515B226"; + private static RelayNetworkStatusConsensus createWithIdentity(String string) throws DescriptorParseException { @@ -260,8 +310,10 @@ public class RelayNetworkStatusConsensusImplTest { dsb.identity = string; return createWithDirectorySignature(dsb.buildDirectorySignature()); } + private String signingKey = "845CF1D0B370CA443A8579D18E7987E7E532F639"; + private static RelayNetworkStatusConsensus createWithSigningKey(String string) throws DescriptorParseException { @@ -269,6 +321,7 @@ public class RelayNetworkStatusConsensusImplTest { dsb.signingKey = string; return createWithDirectorySignature(dsb.buildDirectorySignature()); } + private String buildDirectorySignature() { String directorySignature = "directory-signature " + identity + " " + signingKey + "\n" @@ -1093,16 +1146,16 @@ public class RelayNetworkStatusConsensusImplTest { @Test() public void testBandwidthWeightsLineNoSpace() throws DescriptorParseException { - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithBandwidthWeightsLine("bandwidth-weights"); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithBandwidthWeightsLine("bandwidth-weights"); assertNotNull(consensus.getBandwidthWeights()); }
@Test() public void testBandwidthWeightsLineOneSpace() throws DescriptorParseException { - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithBandwidthWeightsLine("bandwidth-weights "); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithBandwidthWeightsLine("bandwidth-weights "); assertNotNull(consensus.getBandwidthWeights()); }
@@ -1185,8 +1238,8 @@ public class RelayNetworkStatusConsensusImplTest { public void testUnrecognizedHeaderLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithUnrecognizedHeaderLine(unrecognizedLine, false); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithUnrecognizedHeaderLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, consensus.getUnrecognizedLines()); @@ -1204,8 +1257,8 @@ public class RelayNetworkStatusConsensusImplTest { public void testUnrecognizedDirSourceLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithUnrecognizedDirSourceLine(unrecognizedLine, false); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithUnrecognizedDirSourceLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, consensus.getUnrecognizedLines()); @@ -1223,8 +1276,8 @@ public class RelayNetworkStatusConsensusImplTest { public void testUnrecognizedStatusEntryLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithUnrecognizedStatusEntryLine(unrecognizedLine, false); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithUnrecognizedStatusEntryLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, consensus.getUnrecognizedLines()); @@ -1242,8 +1295,8 @@ public class RelayNetworkStatusConsensusImplTest { public void testUnrecognizedDirectoryFooterLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithUnrecognizedFooterLine(unrecognizedLine, false); + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithUnrecognizedFooterLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, consensus.getUnrecognizedLines()); @@ -1261,8 +1314,8 @@ public class RelayNetworkStatusConsensusImplTest { public void testUnrecognizedDirectorySignatureLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusConsensus consensus = ConsensusBuilder. - createWithUnrecognizedDirectorySignatureLine(unrecognizedLine, + RelayNetworkStatusConsensus consensus = ConsensusBuilder + .createWithUnrecognizedDirectorySignatureLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); diff --git a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java index 8f4ece2..d550d26 100644 --- a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java @@ -1,37 +1,31 @@ /* Copyright 2016--2017 The Tor Project * See LICENSE for licensing information */ -package org.torproject.descriptor.impl;
-import org.torproject.descriptor.DescriptorParseException; +package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue;
-import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import org.torproject.descriptor.DescriptorParseException;
import org.junit.Test; -import org.torproject.descriptor.RelayNetworkStatus;
public class RelayNetworkStatusImplTest {
- private final static String validHeader = "network-status-version 2\n" - + "dir-source 194.109.206.212 194.109.206.212 80\n" - + "fingerprint 7EA6EAD6FD83083C538F44038BBFA077587DD755\n" - + "contact 1024R/8D56913D Alex de Joode adejoode@sabotage.org\n" - + "published 2012-03-01 00:10:43\n" - + "dir-options\n" - + "dir-signing-key\n" - + "-----BEGIN RSA PUBLIC KEY-----\n" - + "MIGJAoGBAL7QJ6cmXhMlexV97ehnV5hn5ePOeo0sbDYXhlfw52CheEycoUqSD9Y/\n" - + "3qEo0Rm7XTEol0dRW34ca1LMIXGM4B4whXxBKCRRYe1RY6nF70zb2EUuaHWEWc+f\n" - + "c6JWYUWZSPpW1uyjyLPUI/ikyyH7zmtR4MfhSeNdt2zSakojYNaPAgMBAAE=\n" - + "-----END RSA PUBLIC KEY-----\n"; - - private final static String validStatus = - "@type network-status-2 1.0\n" + validHeader; + private static final String validHeader = "network-status-version 2\n" + + "dir-source 194.109.206.212 194.109.206.212 80\n" + + "fingerprint 7EA6EAD6FD83083C538F44038BBFA077587DD755\n" + + "contact 1024R/8D56913D Alex de Joode adejoode@sabotage.org\n" + + "published 2012-03-01 00:10:43\n" + + "dir-options\n" + + "dir-signing-key\n" + + "-----BEGIN RSA PUBLIC KEY-----\n" + + "MIGJAoGBAL7QJ6cmXhMlexV97ehnV5hn5ePOeo0sbDYXhlfw52CheEycoUqSD9Y/\n" + + "3qEo0Rm7XTEol0dRW34ca1LMIXGM4B4whXxBKCRRYe1RY6nF70zb2EUuaHWEWc+f\n" + + "c6JWYUWZSPpW1uyjyLPUI/ikyyH7zmtR4MfhSeNdt2zSakojYNaPAgMBAAE=\n" + + "-----END RSA PUBLIC KEY-----\n"; + + private static final String validStatus = + "@type network-status-2 1.0\n" + validHeader;
@Test(expected = DescriptorParseException.class) public void testParseBrokenHeader() throws DescriptorParseException { @@ -42,12 +36,11 @@ public class RelayNetworkStatusImplTest {
@Test() public void testValidHeader() throws DescriptorParseException { - RelayNetworkStatusImpl rnsi - = new RelayNetworkStatusImpl(validStatus.getBytes(), true); + RelayNetworkStatusImpl rnsi = + new RelayNetworkStatusImpl(validStatus.getBytes(), true); rnsi.parseHeader(validHeader.getBytes()); assertEquals(rnsi.getContactLine(), - "1024R/8D56913D Alex de Joode adejoode@sabotage.org"); + "1024R/8D56913D Alex de Joode adejoode@sabotage.org"); } - }
diff --git a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java index 79cb78c..847c538 100644 --- a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java @@ -1,21 +1,22 @@ /* Copyright 2011--2017 The Tor Project * See LICENSE for licensing information */ -package org.torproject.descriptor.impl;
-import org.torproject.descriptor.DescriptorParseException; -import org.torproject.descriptor.DirectorySignature; +package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue;
+import org.torproject.descriptor.DescriptorParseException; +import org.torproject.descriptor.DirectorySignature; +import org.torproject.descriptor.RelayNetworkStatusVote; + +import org.junit.Test; + import java.util.ArrayList; import java.util.Arrays; import java.util.List;
-import org.junit.Test; -import org.torproject.descriptor.RelayNetworkStatusVote; - /* TODO Add test cases for all lines starting with "opt ". */
/* Test parsing of network status votes. Some of the vote-parsing code is @@ -27,7 +28,9 @@ public class RelayNetworkStatusVoteImplTest { /* Helper class to build a vote based on default data and modifications * requested by test methods. */ private static class VoteBuilder { + private String networkStatusVersionLine = "network-status-version 3"; + private static RelayNetworkStatusVote createWithNetworkStatusVersionLine(String line) throws DescriptorParseException { @@ -35,7 +38,9 @@ public class RelayNetworkStatusVoteImplTest { vb.networkStatusVersionLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String voteStatusLine = "vote-status vote"; + private static RelayNetworkStatusVote createWithVoteStatusLine(String line) throws DescriptorParseException { @@ -43,8 +48,10 @@ public class RelayNetworkStatusVoteImplTest { vb.voteStatusLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String consensusMethodsLine = "consensus-methods 1 2 3 4 5 6 7 8 9 10 11"; + private static RelayNetworkStatusVote createWithConsensusMethodsLine(String line) throws DescriptorParseException { @@ -52,7 +59,9 @@ public class RelayNetworkStatusVoteImplTest { vb.consensusMethodsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String publishedLine = "published 2011-11-30 08:50:01"; + private static RelayNetworkStatusVote createWithPublishedLine(String line) throws DescriptorParseException { @@ -60,7 +69,9 @@ public class RelayNetworkStatusVoteImplTest { vb.publishedLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String validAfterLine = "valid-after 2011-11-30 09:00:00"; + private static RelayNetworkStatusVote createWithValidAfterLine(String line) throws DescriptorParseException { @@ -68,7 +79,9 @@ public class RelayNetworkStatusVoteImplTest { vb.validAfterLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String freshUntilLine = "fresh-until 2011-11-30 10:00:00"; + private static RelayNetworkStatusVote createWithFreshUntilLine(String line) throws DescriptorParseException { @@ -76,7 +89,9 @@ public class RelayNetworkStatusVoteImplTest { vb.freshUntilLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String validUntilLine = "valid-until 2011-11-30 12:00:00"; + private static RelayNetworkStatusVote createWithValidUntilLine(String line) throws DescriptorParseException { @@ -84,7 +99,9 @@ public class RelayNetworkStatusVoteImplTest { vb.validUntilLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String votingDelayLine = "voting-delay 300 300"; + private static RelayNetworkStatusVote createWithVotingDelayLine(String line) throws DescriptorParseException { @@ -92,8 +109,10 @@ public class RelayNetworkStatusVoteImplTest { vb.votingDelayLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String clientVersionsLine = "client-versions 0.2.1.31," + "0.2.2.34,0.2.3.6-alpha,0.2.3.7-alpha,0.2.3.8-alpha"; + private static RelayNetworkStatusVote createWithClientVersionsLine(String line) throws DescriptorParseException { @@ -101,8 +120,10 @@ public class RelayNetworkStatusVoteImplTest { vb.clientVersionsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String serverVersionsLine = "server-versions 0.2.1.31," + "0.2.2.34,0.2.3.6-alpha,0.2.3.7-alpha,0.2.3.8-alpha"; + private static RelayNetworkStatusVote createWithServerVersionsLine(String line) throws DescriptorParseException { @@ -110,7 +131,9 @@ public class RelayNetworkStatusVoteImplTest { vb.serverVersionsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String packageLines = null; + protected static RelayNetworkStatusVote createWithPackageLines(String lines) throws DescriptorParseException { @@ -118,8 +141,10 @@ public class RelayNetworkStatusVoteImplTest { vb.packageLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String knownFlagsLine = "known-flags Authority BadExit Exit " + "Fast Guard HSDir Named Running Stable Unnamed V2Dir Valid"; + private static RelayNetworkStatusVote createWithKnownFlagsLine(String line) throws DescriptorParseException { @@ -127,10 +152,12 @@ public class RelayNetworkStatusVoteImplTest { vb.knownFlagsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String flagThresholdsLine = "flag-thresholds " + "stable-uptime=693369 stable-mtbf=153249 fast-speed=40960 " + "guard-wfu=94.669% guard-tk=691200 guard-bw-inc-exits=174080 " + "guard-bw-exc-exits=184320 enough-mtbf=1"; + private static RelayNetworkStatusVote createWithFlagThresholdsLine(String line) throws DescriptorParseException { @@ -138,11 +165,13 @@ public class RelayNetworkStatusVoteImplTest { vb.flagThresholdsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String paramsLine = "params " + "CircuitPriorityHalflifeMsec=30000 bwauthbestratio=1 " + "bwauthcircs=1 bwauthdescbw=0 bwauthkp=10000 bwauthpid=1 " + "bwauthtd=5000 bwauthti=50000 bwauthtidecay=5000 cbtnummodes=3 " + "cbtquantile=80 circwindow=1000 refuseunknownexits=1"; + private static RelayNetworkStatusVote createWithParamsLine(String line) throws DescriptorParseException { @@ -150,9 +179,11 @@ public class RelayNetworkStatusVoteImplTest { vb.paramsLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirSourceLine = "dir-source urras " + "80550987E1D626E3EBA5E5E75A458DE0626D088C 208.83.223.34 " + "208.83.223.34 443 80"; + private static RelayNetworkStatusVote createWithDirSourceLine(String line) throws DescriptorParseException { @@ -160,8 +191,10 @@ public class RelayNetworkStatusVoteImplTest { vb.dirSourceLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String contactLine = "contact 4096R/E012B42D Jacob Appelbaum " + "jacob@appelbaum.net"; + private static RelayNetworkStatusVote createWithContactLine(String line) throws DescriptorParseException { @@ -169,7 +202,9 @@ public class RelayNetworkStatusVoteImplTest { vb.contactLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String legacyDirKeyLine = null; + private static RelayNetworkStatusVote createWithLegacyDirKeyLine(String line) throws DescriptorParseException { @@ -177,8 +212,10 @@ public class RelayNetworkStatusVoteImplTest { vb.legacyDirKeyLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirKeyCertificateVersionLine = "dir-key-certificate-version 3"; + private static RelayNetworkStatusVote createWithDirKeyCertificateVersionLine(String line) throws DescriptorParseException { @@ -186,8 +223,10 @@ public class RelayNetworkStatusVoteImplTest { vb.dirKeyCertificateVersionLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String fingerprintLine = "fingerprint " + "80550987E1D626E3EBA5E5E75A458DE0626D088C"; + private static RelayNetworkStatusVote createWithFingerprintLine(String line) throws DescriptorParseException { @@ -195,8 +234,10 @@ public class RelayNetworkStatusVoteImplTest { vb.fingerprintLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirKeyPublishedLine = "dir-key-published 2011-04-27 " + "05:34:37"; + private static RelayNetworkStatusVote createWithDirKeyPublishedLine(String line) throws DescriptorParseException { @@ -204,8 +245,10 @@ public class RelayNetworkStatusVoteImplTest { vb.dirKeyPublishedLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirKeyExpiresLine = "dir-key-expires 2012-04-27 " + "05:34:37"; + private static RelayNetworkStatusVote createWithDirKeyExpiresLine(String line) throws DescriptorParseException { @@ -213,6 +256,7 @@ public class RelayNetworkStatusVoteImplTest { vb.dirKeyExpiresLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirIdentityKeyLines = "dir-identity-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBigKCAYEAtKpuLgVK25sfScjsxfVU1ljofrDygt9GP7bNJl/rghX42KUT97" @@ -225,6 +269,7 @@ public class RelayNetworkStatusVoteImplTest { + "TvcaKz9CEj4XcKm+kOmzejYmIa\nkbWNcRpXPiUZ+xmwGtsq30xrzqiONmERkx" + "qlmf7bVQPFvh3Kz6hGcmTBhTbHSe9h\nzDgmdaTNn3EHAgMBAAE=\n" + "-----END RSA PUBLIC KEY-----"; + private static RelayNetworkStatusVote createWithDirIdentityKeyLines(String lines) throws DescriptorParseException { @@ -232,6 +277,7 @@ public class RelayNetworkStatusVoteImplTest { vb.dirIdentityKeyLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirSigningKeyLines = "dir-signing-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIGJAoGBAN05qyHFQlTqykMP8yLuD4G2UuYulD4Xs8iSX5uqF+WGsUA1E4zZh4" @@ -239,6 +285,7 @@ public class RelayNetworkStatusVoteImplTest { + "mBGsN7\nPUXyMNjwRKL6UvrcbYk1d2mRBLO7SAP/sFW5fHhIBVeLIWrzQ19rAg" + "MBAAE=\n" + "-----END RSA PUBLIC KEY-----"; + private static RelayNetworkStatusVote createWithDirSigningKeyLines(String lines) throws DescriptorParseException { @@ -246,12 +293,14 @@ public class RelayNetworkStatusVoteImplTest { vb.dirSigningKeyLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirKeyCrosscertLines = "dir-key-crosscert\n" + "-----BEGIN ID SIGNATURE-----\n" + "rPBFn6IJ6TvAHj4pSwlg+RTn1fP89JGSVa08wuyJr5dAvZsdakQXvRjamT9oJU" + "aZ\nnY5Rl/tRlGuSQ0BglTPPKoXdKERK0FUr9f0EKrQy7NDUgE2j9losiRuyKz" + "hA3neZ\nK4yF8bhqAwM51u7fzAhIjNeRif9c04rhFJJCseco84w=\n" + "-----END ID SIGNATURE-----"; + private static RelayNetworkStatusVote createWithDirKeyCrosscertLines(String lines) throws DescriptorParseException { @@ -259,6 +308,7 @@ public class RelayNetworkStatusVoteImplTest { vb.dirKeyCrosscertLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String dirKeyCertificationLines = "dir-key-certification\n" + "-----BEGIN SIGNATURE-----\n" + "hPSh6FuohNF5ccjiMbkvr8cZJwGFuL11cNtwN9k0X3pUdFZVATIEkqBe7z+rE2" @@ -271,6 +321,7 @@ public class RelayNetworkStatusVoteImplTest { + "bEGbvY/P8mzVAZxp3Yz+sRtNel\nC1SWz/Fx+Saex5oI7DJ3xtSD4XqKb/wYwZ" + "FT8IxDYq1t2tFXdHxd4QPRVcvc0zYC\n" + "-----END SIGNATURE-----"; + private static RelayNetworkStatusVote createWithDirKeyCertificationLines(String lines) throws DescriptorParseException { @@ -278,14 +329,18 @@ public class RelayNetworkStatusVoteImplTest { vb.dirKeyCertificationLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private List<String> statusEntries = null; + private static RelayNetworkStatusVote createWithStatusEntries( List<String> statusEntries) throws DescriptorParseException { VoteBuilder vb = new VoteBuilder(); vb.statusEntries = statusEntries; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String directoryFooterLine = "directory-footer"; + private static RelayNetworkStatusVote createWithDirectoryFooterLine(String line) throws DescriptorParseException { @@ -293,6 +348,7 @@ public class RelayNetworkStatusVoteImplTest { vb.directoryFooterLine = line; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String directorySignatureLines = "directory-signature " + "80550987E1D626E3EBA5E5E75A458DE0626D088C " + "EEB9299D295C1C815E289FBF2F2BBEA5F52FDD19\n" @@ -301,6 +357,7 @@ public class RelayNetworkStatusVoteImplTest { + "F3Yh\nrXVaaoP07r6Ta+s0g1Zijm3lms50Nk/4tV2p8Y63c3F4Q3DAnK40Oi" + "kfOIwEj+Ny\n+zBRQssP3hPhTPOj/A7o3mZZwtL6x1sxpeu/nME1l5E=\n" + "-----END SIGNATURE-----"; + private static RelayNetworkStatusVote createWithDirectorySignatureLines(String lines) throws DescriptorParseException { @@ -308,7 +365,9 @@ public class RelayNetworkStatusVoteImplTest { vb.directorySignatureLines = lines; return new RelayNetworkStatusVoteImpl(vb.buildVote(), true); } + private String unrecognizedHeaderLine = null; + protected static RelayNetworkStatusVote createWithUnrecognizedHeaderLine(String line, boolean failUnrecognizedDescriptorLines) @@ -318,7 +377,9 @@ public class RelayNetworkStatusVoteImplTest { return new RelayNetworkStatusVoteImpl(vb.buildVote(), failUnrecognizedDescriptorLines); } + private String unrecognizedDirSourceLine = null; + protected static RelayNetworkStatusVote createWithUnrecognizedDirSourceLine(String line, boolean failUnrecognizedDescriptorLines) @@ -328,7 +389,9 @@ public class RelayNetworkStatusVoteImplTest { return new RelayNetworkStatusVoteImpl(vb.buildVote(), failUnrecognizedDescriptorLines); } + private String unrecognizedStatusEntryLine = null; + protected static RelayNetworkStatusVote createWithUnrecognizedStatusEntryLine(String line, boolean failUnrecognizedDescriptorLines) @@ -338,7 +401,9 @@ public class RelayNetworkStatusVoteImplTest { return new RelayNetworkStatusVoteImpl(vb.buildVote(), failUnrecognizedDescriptorLines); } + private String unrecognizedFooterLine = null; + protected static RelayNetworkStatusVote createWithUnrecognizedFooterLine(String line, boolean failUnrecognizedDescriptorLines) @@ -348,7 +413,9 @@ public class RelayNetworkStatusVoteImplTest { return new RelayNetworkStatusVoteImpl(vb.buildVote(), failUnrecognizedDescriptorLines); } + private String unrecognizedDirectorySignatureLine = null; + protected static RelayNetworkStatusVote createWithUnrecognizedDirectorySignatureLine(String line, boolean failUnrecognizedDescriptorLines) @@ -378,6 +445,7 @@ public class RelayNetworkStatusVoteImplTest { + "m 8,9,10,11 " + "sha256=9ciEx9t0McXk9A06I7qwN7pxuNOdpCP64RV/6cx2Zkc"); } + private byte[] buildVote() { StringBuilder sb = new StringBuilder(); this.appendHeader(sb); @@ -387,6 +455,7 @@ public class RelayNetworkStatusVoteImplTest { this.appendDirectorySignature(sb); return sb.toString().getBytes(); } + private void appendHeader(StringBuilder sb) { if (this.networkStatusVersionLine != null) { sb.append(this.networkStatusVersionLine).append("\n"); @@ -434,6 +503,7 @@ public class RelayNetworkStatusVoteImplTest { sb.append(this.unrecognizedHeaderLine).append("\n"); } } + private void appendDirSource(StringBuilder sb) { if (this.dirSourceLine != null) { sb.append(this.dirSourceLine).append("\n"); @@ -472,6 +542,7 @@ public class RelayNetworkStatusVoteImplTest { sb.append(this.unrecognizedDirSourceLine).append("\n"); } } + private void appendStatusEntries(StringBuilder sb) { for (String statusEntry : this.statusEntries) { sb.append(statusEntry).append("\n"); @@ -480,6 +551,7 @@ public class RelayNetworkStatusVoteImplTest { sb.append(this.unrecognizedStatusEntryLine).append("\n"); } } + private void appendFooter(StringBuilder sb) { if (this.directoryFooterLine != null) { sb.append(this.directoryFooterLine).append("\n"); @@ -488,6 +560,7 @@ public class RelayNetworkStatusVoteImplTest { sb.append(this.unrecognizedFooterLine).append("\n"); } } + private void appendDirectorySignature(StringBuilder sb) { if (this.directorySignatureLines != null) { sb.append(directorySignatureLines).append("\n"); @@ -517,8 +590,8 @@ public class RelayNetworkStatusVoteImplTest { assertEquals(30000, (int) vote.getConsensusParams().get( "CircuitPriorityHalflifeMsec")); assertEquals("Tor 0.2.1.29 (r8e9b25e6c7a2e70c)", - vote.getStatusEntry("00343A8024F70E214728F0C5AF7ACE0C1508F073"). - getVersion()); + vote.getStatusEntry("00343A8024F70E214728F0C5AF7ACE0C1508F073") + .getVersion()); assertEquals(3, vote.getDirKeyCertificateVersion()); assertEquals("80550987E1D626E3EBA5E5E75A458DE0626D088C", vote.getIdentity()); @@ -832,11 +905,11 @@ public class RelayNetworkStatusVoteImplTest { } }
- @Test(expected = DescriptorParseException.class) - public void testPackageIncomplete() throws DescriptorParseException { - String packageLine = "package shouldbesecond 0 http"; - ConsensusBuilder.createWithPackageLines(packageLine); - } + @Test(expected = DescriptorParseException.class) + public void testPackageIncomplete() throws DescriptorParseException { + String packageLine = "package shouldbesecond 0 http"; + ConsensusBuilder.createWithPackageLines(packageLine); + }
@Test(expected = DescriptorParseException.class) public void testKnownFlagsNoLine() throws DescriptorParseException { @@ -1284,8 +1357,8 @@ public class RelayNetworkStatusVoteImplTest { public void testUnrecognizedHeaderLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusVote vote = VoteBuilder. - createWithUnrecognizedHeaderLine(unrecognizedLine, false); + RelayNetworkStatusVote vote = VoteBuilder + .createWithUnrecognizedHeaderLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, vote.getUnrecognizedLines()); @@ -1303,8 +1376,8 @@ public class RelayNetworkStatusVoteImplTest { public void testUnrecognizedDirSourceLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusVote vote = VoteBuilder. - createWithUnrecognizedDirSourceLine(unrecognizedLine, false); + RelayNetworkStatusVote vote = VoteBuilder + .createWithUnrecognizedDirSourceLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, vote.getUnrecognizedLines()); @@ -1321,8 +1394,8 @@ public class RelayNetworkStatusVoteImplTest { public void testUnrecognizedFooterLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - RelayNetworkStatusVote vote = VoteBuilder. - createWithUnrecognizedFooterLine(unrecognizedLine, false); + RelayNetworkStatusVote vote = VoteBuilder + .createWithUnrecognizedFooterLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, vote.getUnrecognizedLines()); diff --git a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java index 0daa83b..3769ead 100644 --- a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java @@ -1,14 +1,20 @@ /* Copyright 2012--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
-import org.torproject.descriptor.DescriptorParseException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue;
+import org.torproject.descriptor.BandwidthHistory; +import org.torproject.descriptor.DescriptorParseException; +import org.torproject.descriptor.ServerDescriptor; + +import org.junit.Test; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -16,68 +22,79 @@ import java.util.Arrays; import java.util.List; import java.util.SortedMap;
-import org.junit.Test; -import org.torproject.descriptor.BandwidthHistory; -import org.torproject.descriptor.ServerDescriptor; - /* Test parsing of relay server descriptors. */ public class ServerDescriptorImplTest {
/* Helper class to build a descriptor based on default data and * modifications requested by test methods. */ private static class DescriptorBuilder { + private String routerLine = "router saberrider2008 94.134.192.243 " + "9001 0 0"; + private static ServerDescriptor createWithRouterLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.routerLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String bandwidthLine = "bandwidth 51200 51200 53470"; + private static ServerDescriptor createWithBandwidthLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.bandwidthLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String platformLine = "platform Tor 0.2.2.35 " + "(git-b04388f9e7546a9f) on Linux i686"; + private static ServerDescriptor createWithPlatformLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.platformLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String publishedLine = "published 2012-01-01 04:03:19"; + private static ServerDescriptor createWithPublishedLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.publishedLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String fingerprintLine = "opt fingerprint D873 3048 FC8E " + "C910 2466 AD8F 3098 622B F1BF 71FD"; + private static ServerDescriptor createWithFingerprintLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.fingerprintLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String hibernatingLine = null; + private static ServerDescriptor createWithHibernatingLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.hibernatingLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String uptimeLine = "uptime 48"; + private static ServerDescriptor createWithUptimeLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.uptimeLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String onionKeyLines = "onion-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIGJAoGBAKM+iiHhO6eHsvd6Xjws9z9EQB1V/Bpuy5ciGJ1U4V9SeiKooSo5Bp" @@ -85,12 +102,14 @@ public class ServerDescriptorImplTest { + "uC3cTF\n9wE4WXY4nX7w0RTN18UVLxrt1A9PP0cobFNiPs9rzJCbKFfacOkpAg" + "MBAAE=\n" + "-----END RSA PUBLIC KEY-----"; + private static ServerDescriptor createWithOnionKeyLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.onionKeyLines = lines; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String signingKeyLines = "signing-key\n" + "-----BEGIN RSA PUBLIC KEY-----\n" + "MIGJAoGBALMm3r3QDh482Ewe6Ub9wvRIfmEkoNX6q5cEAtQRNHSDcNx41gjELb" @@ -98,99 +117,126 @@ public class ServerDescriptorImplTest { + "DhUROG\n8URDIhQoixcUeyyrVB8sxliSstKimulGnB7xpjYOlO8JKaHLNL4TAg" + "MBAAE=\n" + "-----END RSA PUBLIC KEY-----"; + private static ServerDescriptor createWithSigningKeyLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.signingKeyLines = lines; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String onionKeyCrosscertLines = null; + private static ServerDescriptor createWithOnionKeyCrosscertLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.onionKeyCrosscertLines = lines; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String ntorOnionKeyCrosscertLines = null; + private static ServerDescriptor createWithNtorOnionKeyCrosscertLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.ntorOnionKeyCrosscertLines = lines; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String exitPolicyLines = "reject *:*"; + private static ServerDescriptor createWithExitPolicyLines( String lines) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.exitPolicyLines = lines; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String contactLine = "contact Random Person <nobody AT " + "example dot com>"; + private static ServerDescriptor createWithContactLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.contactLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String familyLine = null; + private static ServerDescriptor createWithFamilyLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.familyLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String readHistoryLine = null; + private static ServerDescriptor createWithReadHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.readHistoryLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String writeHistoryLine = null; + private static ServerDescriptor createWithWriteHistoryLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.writeHistoryLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String eventdnsLine = null; + private static ServerDescriptor createWithEventdnsLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.eventdnsLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String cachesExtraInfoLine = null; + private static ServerDescriptor createWithCachesExtraInfoLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.cachesExtraInfoLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String extraInfoDigestLine = "opt extra-info-digest " + "1469D1550738A25B1E7B47CDDBCD7B2899F51B74"; + private static ServerDescriptor createWithExtraInfoDigestLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.extraInfoDigestLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String hiddenServiceDirLine = "opt hidden-service-dir"; + private static ServerDescriptor createWithHiddenServiceDirLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.hiddenServiceDirLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String protocolsLine = "opt protocols Link 1 2 Circuit 1"; + private static ServerDescriptor createWithProtocolsLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.protocolsLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String allowSingleHopExitsLine = null; + private static ServerDescriptor createWithAllowSingleHopExitsLine(String line) throws DescriptorParseException { @@ -198,40 +244,50 @@ public class ServerDescriptorImplTest { db.allowSingleHopExitsLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String ipv6PolicyLine = null; + private static ServerDescriptor createWithIpv6PolicyLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.ipv6PolicyLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String ntorOnionKeyLine = null; + private static ServerDescriptor createWithNtorOnionKeyLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.ntorOnionKeyLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String tunnelledDirServerLine = null; + private static ServerDescriptor createWithTunnelledDirServerLine( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.tunnelledDirServerLine = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String routerSignatureLines = "router-signature\n" + "-----BEGIN SIGNATURE-----\n" + "o4j+kH8UQfjBwepUnr99v0ebN8RpzHJ/lqYsTojXHy9kMr1RNI9IDeSzA7PSqT" + "uV\n4PL8QsGtlfwthtIoZpB2srZeyN/mcpA9fa1JXUrt/UN9K/+32Cyaad7h0n" + "HE6Xfb\njqpXDpnBpvk4zjmzjjKYnIsUWTnADmu0fo3xTRqXi7g=\n" + "-----END SIGNATURE-----"; + private static ServerDescriptor createWithRouterSignatureLines( String line) throws DescriptorParseException { DescriptorBuilder db = new DescriptorBuilder(); db.routerSignatureLines = line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private String unrecognizedLine = null; + private static ServerDescriptor createWithUnrecognizedLine( String line, boolean failUnrecognizedDescriptorLines) throws DescriptorParseException { @@ -240,7 +296,9 @@ public class ServerDescriptorImplTest { return new RelayServerDescriptorImpl(db.buildDescriptor(), failUnrecognizedDescriptorLines); } + private byte[] nonAsciiLineBytes = null; + private static ServerDescriptor createWithNonAsciiLineBytes( byte[] lineBytes, boolean failUnrecognizedDescriptorLines) throws DescriptorParseException { @@ -249,8 +307,13 @@ public class ServerDescriptorImplTest { return new RelayServerDescriptorImpl(db.buildDescriptor(), failUnrecognizedDescriptorLines); } - private String identityEd25519Lines = null, - masterKeyEd25519Line = null, routerSigEd25519Line = null; + + private String identityEd25519Lines = null; + + private String masterKeyEd25519Line = null; + + private String routerSigEd25519Line = null; + private static ServerDescriptor createWithEd25519Lines( String identityEd25519Lines, String masterKeyEd25519Line, String routerSigEd25519Line) throws DescriptorParseException { @@ -260,6 +323,7 @@ public class ServerDescriptorImplTest { db.routerSigEd25519Line = routerSigEd25519Line; return new RelayServerDescriptorImpl(db.buildDescriptor(), true); } + private byte[] buildDescriptor() { StringBuilder sb = new StringBuilder(); if (this.routerLine != null) { @@ -418,8 +482,8 @@ public class ServerDescriptorImplTest {
@Test() public void testRouterOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithRouterLine("opt router saberrider2008 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithRouterLine("opt router saberrider2008 " + "94.134.192.243 9001 0 0"); assertEquals("saberrider2008", descriptor.getNickname()); assertEquals("94.134.192.243", descriptor.getAddress()); @@ -455,8 +519,8 @@ public class ServerDescriptorImplTest {
@Test() public void testNicknameTwoSpaces() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithRouterLine("router saberrider2008 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithRouterLine("router saberrider2008 " + "94.134.192.243 9001 0 0"); assertEquals("saberrider2008", descriptor.getNickname()); assertEquals("94.134.192.243", descriptor.getAddress()); @@ -512,15 +576,15 @@ public class ServerDescriptorImplTest {
@Test() public void testPlatformMissing() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPlatformLine(null); + ServerDescriptor descriptor = DescriptorBuilder + .createWithPlatformLine(null); assertNull(descriptor.getPlatform()); }
@Test() public void testPlatformOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPlatformLine("opt platform Tor 0.2.2.35 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithPlatformLine("opt platform Tor 0.2.2.35 " + "(git-b04388f9e7546a9f) on Linux i686"); assertEquals("Tor 0.2.2.35 (git-b04388f9e7546a9f) on Linux i686", descriptor.getPlatform()); @@ -528,22 +592,22 @@ public class ServerDescriptorImplTest {
@Test() public void testPlatformNoSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPlatformLine("platform"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithPlatformLine("platform"); assertEquals("", descriptor.getPlatform()); }
@Test() public void testPlatformSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPlatformLine("platform "); + ServerDescriptor descriptor = DescriptorBuilder + .createWithPlatformLine("platform "); assertEquals("", descriptor.getPlatform()); }
@Test() public void testProtocolsNoOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithProtocolsLine("protocols Link 1 2 Circuit 1"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithProtocolsLine("protocols Link 1 2 Circuit 1"); assertEquals(Arrays.asList(new Integer[] {1, 2}), descriptor.getLinkProtocolVersions()); assertEquals(Arrays.asList(new Integer[] {1}), @@ -551,7 +615,7 @@ public class ServerDescriptorImplTest { }
@Test(expected = DescriptorParseException.class) - public void testProtocolsAB() throws DescriptorParseException { + public void testProtocolsAb() throws DescriptorParseException { DescriptorBuilder.createWithProtocolsLine("opt protocols Link A B " + "Circuit 1"); } @@ -569,8 +633,8 @@ public class ServerDescriptorImplTest {
@Test() public void testPublishedOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPublishedLine("opt published 2012-01-01 04:03:19"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithPublishedLine("opt published 2012-01-01 04:03:19"); assertEquals(1325390599000L, descriptor.getPublishedMillis()); }
@@ -599,15 +663,15 @@ public class ServerDescriptorImplTest {
@Test() public void testPublishedMillis() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithPublishedLine("opt published 2012-01-01 04:03:19.123"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithPublishedLine("opt published 2012-01-01 04:03:19.123"); assertEquals(1325390599000L, descriptor.getPublishedMillis()); }
@Test() public void testFingerprintNoOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFingerprintLine("fingerprint D873 3048 FC8E C910 2466 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithFingerprintLine("fingerprint D873 3048 FC8E C910 2466 " + "AD8F 3098 622B F1BF 71FD"); assertEquals("D8733048FC8EC9102466AD8F3098622BF1BF71FD", descriptor.getFingerprint()); @@ -639,15 +703,15 @@ public class ServerDescriptorImplTest {
@Test() public void testUptimeMissing() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithUptimeLine(null); + ServerDescriptor descriptor = DescriptorBuilder + .createWithUptimeLine(null); assertNull(descriptor.getUptime()); }
@Test() public void testUptimeOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithUptimeLine("opt uptime 48"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithUptimeLine("opt uptime 48"); assertEquals(48, descriptor.getUptime().longValue()); }
@@ -678,8 +742,8 @@ public class ServerDescriptorImplTest {
@Test() public void testBandwidthOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithBandwidthLine("opt bandwidth 51200 51200 53470"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithBandwidthLine("opt bandwidth 51200 51200 53470"); assertEquals(51200, (int) descriptor.getBandwidthRate()); assertEquals(51200, (int) descriptor.getBandwidthBurst()); assertEquals(53470, (int) descriptor.getBandwidthObserved()); @@ -700,8 +764,8 @@ public class ServerDescriptorImplTest { /* This is allowed, because Tor versions 0.0.8 and older only wrote * bandwidth lines with rate and burst values, but no observed * value. */ - ServerDescriptor descriptor = DescriptorBuilder. - createWithBandwidthLine("bandwidth 51200 51200"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithBandwidthLine("bandwidth 51200 51200"); assertEquals(51200, (int) descriptor.getBandwidthRate()); assertEquals(51200, (int) descriptor.getBandwidthBurst()); assertEquals(-1, (int) descriptor.getBandwidthObserved()); @@ -721,8 +785,8 @@ public class ServerDescriptorImplTest {
@Test() public void testExtraInfoDigestNoOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExtraInfoDigestLine("extra-info-digest " + ServerDescriptor descriptor = DescriptorBuilder + .createWithExtraInfoDigestLine("extra-info-digest " + "1469D1550738A25B1E7B47CDDBCD7B2899F51B74"); assertEquals("1469D1550738A25B1E7B47CDDBCD7B2899F51B74", descriptor.getExtraInfoDigest()); @@ -753,8 +817,8 @@ public class ServerDescriptorImplTest { @Test() public void testExtraInfoDigestMissing() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExtraInfoDigestLine(null); + ServerDescriptor descriptor = DescriptorBuilder + .createWithExtraInfoDigestLine(null); assertNull(descriptor.getExtraInfoDigest()); }
@@ -766,8 +830,8 @@ public class ServerDescriptorImplTest { "V609l+N6ActBveebfNbH5lQ6wHDNstDkFgyqEhBHwtA"; String extraInfoDigestLine = String.format("extra-info-digest %s %s", extraInfoDigest, additionalExtraInfoDigest); - ServerDescriptor descriptor = DescriptorBuilder. - createWithExtraInfoDigestLine(extraInfoDigestLine); + ServerDescriptor descriptor = DescriptorBuilder + .createWithExtraInfoDigestLine(extraInfoDigestLine); assertEquals(extraInfoDigest, descriptor.getExtraInfoDigest()); }
@@ -796,16 +860,16 @@ public class ServerDescriptorImplTest { @Test() public void testHiddenServiceDirMissing() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHiddenServiceDirLine(null); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHiddenServiceDirLine(null); assertNull(descriptor.getHiddenServiceDirVersions()); }
@Test() public void testHiddenServiceDirNoOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHiddenServiceDirLine("hidden-service-dir"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHiddenServiceDirLine("hidden-service-dir"); assertEquals(Arrays.asList(new Integer[] {2}), descriptor.getHiddenServiceDirVersions()); } @@ -813,23 +877,23 @@ public class ServerDescriptorImplTest { @Test() public void testHiddenServiceDirVersions2And3() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHiddenServiceDirLine("hidden-service-dir 2 3"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHiddenServiceDirLine("hidden-service-dir 2 3"); assertEquals(Arrays.asList(new Integer[] {2, 3}), descriptor.getHiddenServiceDirVersions()); }
@Test() public void testContactMissing() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithContactLine(null); + ServerDescriptor descriptor = DescriptorBuilder + .createWithContactLine(null); assertNull(descriptor.getContact()); }
@Test() public void testContactOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithContactLine("opt contact Random Person"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithContactLine("opt contact Random Person"); assertEquals("Random Person", descriptor.getContact()); }
@@ -841,8 +905,8 @@ public class ServerDescriptorImplTest {
@Test() public void testContactNoSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithContactLine("contact"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithContactLine("contact"); assertEquals("", descriptor.getContact()); }
@@ -856,24 +920,24 @@ public class ServerDescriptorImplTest { + "07\rmTQoP40G4zqOrVEOOcXpdSiRnHWJYfgTnkibNZrOZEZLn3H1ywpovEgESm" + "oGEdAX\roid3XuIYRpRnqoafbFg9sg+OofX/mGrO+5ACfagQ9rlfx2oxCWijYw" + "pYFRk3NhCY=\r=Xaw3\r-----END PGP PUBLIC KEY BLOCK-----"; - ServerDescriptor descriptor = DescriptorBuilder. - createWithContactLine("contact " + contactString); + ServerDescriptor descriptor = DescriptorBuilder + .createWithContactLine("contact " + contactString); assertEquals(contactString, descriptor.getContact()); }
@Test() public void testExitPolicyRejectAllAcceptAll() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExitPolicyLines("reject *:*\naccept *:*"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithExitPolicyLines("reject *:*\naccept *:*"); assertEquals(Arrays.asList(new String[] {"reject *:*", "accept *:*"}), descriptor.getExitPolicyLines()); }
@Test() public void testExitPolicyOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExitPolicyLines("opt reject *:*"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithExitPolicyLines("opt reject *:*"); assertEquals(Arrays.asList(new String[] {"reject *:*"}), descriptor.getExitPolicyLines()); } @@ -886,8 +950,8 @@ public class ServerDescriptorImplTest { @Test() public void testExitPolicyAccept80RejectAll() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExitPolicyLines("accept *:80\nreject *:*"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithExitPolicyLines("accept *:80\nreject *:*"); assertEquals(Arrays.asList(new String[] {"accept *:80", "reject *:*"}), descriptor.getExitPolicyLines()); } @@ -916,8 +980,8 @@ public class ServerDescriptorImplTest {
@Test() public void testExitPolicyMaskTypes() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithExitPolicyLines("reject 192.168.0.0/16:*\n" + ServerDescriptor descriptor = DescriptorBuilder + .createWithExitPolicyLines("reject 192.168.0.0/16:*\n" + "reject 94.134.192.243/255.255.255.0:*"); assertEquals(Arrays.asList(new String[] { "reject 192.168.0.0/16:*", "reject 94.134.192.243/255.255.255.0:*"}), @@ -947,22 +1011,22 @@ public class ServerDescriptorImplTest {
@Test() public void testHibernatingOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHibernatingLine("opt hibernating 1"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHibernatingLine("opt hibernating 1"); assertTrue(descriptor.isHibernating()); }
@Test() public void testHibernatingFalse() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHibernatingLine("hibernating 0"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHibernatingLine("hibernating 0"); assertFalse(descriptor.isHibernating()); }
@Test() public void testHibernatingTrue() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithHibernatingLine("hibernating 1"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithHibernatingLine("hibernating 1"); assertTrue(descriptor.isHibernating()); }
@@ -978,16 +1042,16 @@ public class ServerDescriptorImplTest {
@Test() public void testFamilyOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFamilyLine("opt family saberrider2008"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithFamilyLine("opt family saberrider2008"); assertEquals(Arrays.asList(new String[] {"saberrider2008"}), descriptor.getFamilyEntries()); }
@Test() public void testFamilyFingerprint() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFamilyLine("family " + ServerDescriptor descriptor = DescriptorBuilder + .createWithFamilyLine("family " + "$D8733048FC8EC9102466AD8F3098622BF1BF71FD"); assertEquals(Arrays.asList(new String[] { "$D8733048FC8EC9102466AD8F3098622BF1BF71FD"}), @@ -996,8 +1060,8 @@ public class ServerDescriptorImplTest {
@Test() public void testFamilyNickname() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFamilyLine("family saberrider2008"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithFamilyLine("family saberrider2008"); assertEquals(Arrays.asList(new String[] {"saberrider2008"}), descriptor.getFamilyEntries()); } @@ -1023,8 +1087,8 @@ public class ServerDescriptorImplTest { @Test() public void testFamilyFingerprintNicknameNamed() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFamilyLine("family " + ServerDescriptor descriptor = DescriptorBuilder + .createWithFamilyLine("family " + "$D8733048FC8EC9102466AD8F3098622BF1BF71FD=saberrider2008"); assertEquals(Arrays.asList(new String[] { "$D8733048FC8EC9102466AD8F3098622BF1BF71FD=saberrider2008" }), @@ -1034,8 +1098,8 @@ public class ServerDescriptorImplTest { @Test() public void testFamilyFingerprintNicknameUnnamed() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithFamilyLine("family " + ServerDescriptor descriptor = DescriptorBuilder + .createWithFamilyLine("family " + "$D8733048FC8EC9102466AD8F3098622BF1BF71FD~saberrider2008"); assertEquals(Arrays.asList(new String[] { "$D8733048FC8EC9102466AD8F3098622BF1BF71FD~saberrider2008" }), @@ -1046,16 +1110,16 @@ public class ServerDescriptorImplTest { public void testWriteHistory() throws DescriptorParseException { String writeHistoryLine = "write-history 2012-01-01 03:51:44 (900 s) " + "4345856,261120,7591936,1748992"; - ServerDescriptor descriptor = DescriptorBuilder. - createWithWriteHistoryLine(writeHistoryLine); + ServerDescriptor descriptor = DescriptorBuilder + .createWithWriteHistoryLine(writeHistoryLine); assertNotNull(descriptor.getWriteHistory()); BandwidthHistory parsedWriteHistory = descriptor.getWriteHistory(); assertEquals(writeHistoryLine, parsedWriteHistory.getLine()); - assertEquals(1325389904000L, (long) parsedWriteHistory. - getHistoryEndMillis()); + assertEquals(1325389904000L, (long) parsedWriteHistory + .getHistoryEndMillis()); assertEquals(900L, (long) parsedWriteHistory.getIntervalLength()); - SortedMap<Long, Long> bandwidthValues = parsedWriteHistory. - getBandwidthValues(); + SortedMap<Long, Long> bandwidthValues = parsedWriteHistory + .getBandwidthValues(); assertEquals(4345856L, (long) bandwidthValues.remove(1325387204000L)); assertEquals(261120L, (long) bandwidthValues.remove(1325388104000L)); assertEquals(7591936L, (long) bandwidthValues.remove(1325389004000L)); @@ -1065,8 +1129,8 @@ public class ServerDescriptorImplTest {
@Test() public void testWriteHistoryOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithWriteHistoryLine("opt write-history 2012-01-01 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithWriteHistoryLine("opt write-history 2012-01-01 " + "03:51:44 (900 s) 4345856,261120,7591936,1748992"); assertNotNull(descriptor.getWriteHistory()); } @@ -1115,25 +1179,25 @@ public class ServerDescriptorImplTest { @Test() public void testWriteHistoryNoValuesSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + "(900 s) "); - assertEquals(900, (long) descriptor.getWriteHistory(). - getIntervalLength()); - assertTrue(descriptor.getWriteHistory().getBandwidthValues(). - isEmpty()); + assertEquals(900, (long) descriptor.getWriteHistory() + .getIntervalLength()); + assertTrue(descriptor.getWriteHistory().getBandwidthValues() + .isEmpty()); }
@Test() public void testWriteHistoryNoValuesNoSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + "(900 s)"); - assertEquals(900, (long) descriptor.getWriteHistory(). - getIntervalLength()); - assertTrue(descriptor.getWriteHistory().getBandwidthValues(). - isEmpty()); + assertEquals(900, (long) descriptor.getWriteHistory() + .getIntervalLength()); + assertTrue(descriptor.getWriteHistory().getBandwidthValues() + .isEmpty()); }
@Test(expected = DescriptorParseException.class) @@ -1152,27 +1216,27 @@ public class ServerDescriptorImplTest { @Test() public void testWriteHistory1800Seconds() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + ServerDescriptor descriptor = DescriptorBuilder + .createWithWriteHistoryLine("write-history 2012-01-01 03:51:44 " + "(1800 s) 4345856"); - assertEquals(1800L, (long) descriptor.getWriteHistory(). - getIntervalLength()); + assertEquals(1800L, (long) descriptor.getWriteHistory() + .getIntervalLength()); }
@Test() public void testReadHistory() throws DescriptorParseException { String readHistoryLine = "read-history 2012-01-01 03:51:44 (900 s) " + "4268032,139264,7797760,1415168"; - ServerDescriptor descriptor = DescriptorBuilder. - createWithReadHistoryLine(readHistoryLine); + ServerDescriptor descriptor = DescriptorBuilder + .createWithReadHistoryLine(readHistoryLine); assertNotNull(descriptor.getReadHistory()); BandwidthHistory parsedReadHistory = descriptor.getReadHistory(); assertEquals(readHistoryLine, parsedReadHistory.getLine()); - assertEquals(1325389904000L, (long) parsedReadHistory. - getHistoryEndMillis()); + assertEquals(1325389904000L, (long) parsedReadHistory + .getHistoryEndMillis()); assertEquals(900L, (long) parsedReadHistory.getIntervalLength()); - SortedMap<Long, Long> bandwidthValues = parsedReadHistory. - getBandwidthValues(); + SortedMap<Long, Long> bandwidthValues = parsedReadHistory + .getBandwidthValues(); assertEquals(4268032L, (long) bandwidthValues.remove(1325387204000L)); assertEquals(139264L, (long) bandwidthValues.remove(1325388104000L)); assertEquals(7797760L, (long) bandwidthValues.remove(1325389004000L)); @@ -1191,22 +1255,22 @@ public class ServerDescriptorImplTest {
@Test() public void testEventdnsOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithEventdnsLine("opt eventdns 1"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithEventdnsLine("opt eventdns 1"); assertTrue(descriptor.getUsesEnhancedDnsLogic()); }
@Test() public void testEventdns1() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithEventdnsLine("eventdns 1"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithEventdnsLine("eventdns 1"); assertTrue(descriptor.getUsesEnhancedDnsLogic()); }
@Test() public void testEventdns0() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithEventdnsLine("eventdns 0"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithEventdnsLine("eventdns 0"); assertFalse(descriptor.getUsesEnhancedDnsLogic()); }
@@ -1222,16 +1286,16 @@ public class ServerDescriptorImplTest {
@Test() public void testCachesExtraInfoOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithCachesExtraInfoLine("opt caches-extra-info"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithCachesExtraInfoLine("opt caches-extra-info"); assertTrue(descriptor.getCachesExtraInfo()); }
@Test() public void testCachesExtraInfoNoSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithCachesExtraInfoLine("caches-extra-info"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithCachesExtraInfoLine("caches-extra-info"); assertTrue(descriptor.getCachesExtraInfo()); }
@@ -1244,16 +1308,16 @@ public class ServerDescriptorImplTest { @Test() public void testAllowSingleHopExitsOpt() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithAllowSingleHopExitsLine("opt allow-single-hop-exits"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithAllowSingleHopExitsLine("opt allow-single-hop-exits"); assertTrue(descriptor.getAllowSingleHopExits()); }
@Test() public void testAllowSingleHopExitsNoSpace() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithAllowSingleHopExitsLine("allow-single-hop-exits"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithAllowSingleHopExitsLine("allow-single-hop-exits"); assertTrue(descriptor.getAllowSingleHopExits()); }
@@ -1278,8 +1342,8 @@ public class ServerDescriptorImplTest {
@Test() public void testIpv6PolicyLine() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithIpv6PolicyLine("ipv6-policy accept 80,1194,1220,1293"); + ServerDescriptor descriptor = DescriptorBuilder + .createWithIpv6PolicyLine("ipv6-policy accept 80,1194,1220,1293"); assertEquals("accept", descriptor.getIpv6DefaultPolicy()); assertEquals("80,1194,1220,1293", descriptor.getIpv6PortList()); } @@ -1317,8 +1381,8 @@ public class ServerDescriptorImplTest {
@Test() public void testNtorOnionKeyLine() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithNtorOnionKeyLine("ntor-onion-key " + ServerDescriptor descriptor = DescriptorBuilder + .createWithNtorOnionKeyLine("ntor-onion-key " + "Y/XgaHcPIJVa4D55kir9QLH8rEYAaLXuv3c3sm8jYhY="); assertEquals("Y/XgaHcPIJVa4D55kir9QLH8rEYAaLXuv3c3sm8jYhY", descriptor.getNtorOnionKey()); @@ -1327,8 +1391,8 @@ public class ServerDescriptorImplTest { @Test() public void testNtorOnionKeyLineNoPadding() throws DescriptorParseException { - ServerDescriptor descriptor = DescriptorBuilder. - createWithNtorOnionKeyLine("ntor-onion-key " + ServerDescriptor descriptor = DescriptorBuilder + .createWithNtorOnionKeyLine("ntor-onion-key " + "Y/XgaHcPIJVa4D55kir9QLH8rEYAaLXuv3c3sm8jYhY"); assertEquals("Y/XgaHcPIJVa4D55kir9QLH8rEYAaLXuv3c3sm8jYhY", descriptor.getNtorOnionKey()); @@ -1403,8 +1467,8 @@ public class ServerDescriptorImplTest { public void testUnrecognizedLineIgnore() throws DescriptorParseException { String unrecognizedLine = "unrecognized-line 1"; - ServerDescriptor descriptor = DescriptorBuilder. - createWithUnrecognizedLine(unrecognizedLine, false); + ServerDescriptor descriptor = DescriptorBuilder + .createWithUnrecognizedLine(unrecognizedLine, false); List<String> unrecognizedLines = new ArrayList<>(); unrecognizedLines.add(unrecognizedLine); assertEquals(unrecognizedLines, descriptor.getUnrecognizedLines()); @@ -1426,8 +1490,8 @@ public class ServerDescriptorImplTest { for (String line : unrecognizedLines) { sb.append("\n").append(line); } - ServerDescriptor descriptor = DescriptorBuilder. - createWithUnrecognizedLine(sb.toString().substring(1), false); + ServerDescriptor descriptor = DescriptorBuilder + .createWithUnrecognizedLine(sb.toString().substring(1), false); assertEquals(unrecognizedLines, descriptor.getUnrecognizedLines()); }
@@ -1447,8 +1511,8 @@ public class ServerDescriptorImplTest { for (String line : unrecognizedLines) { sb.append("\n").append(line); } - ServerDescriptor descriptor = DescriptorBuilder. - createWithUnrecognizedLine(sb.toString().substring(1), false); + ServerDescriptor descriptor = DescriptorBuilder + .createWithUnrecognizedLine(sb.toString().substring(1), false); assertEquals(unrecognizedLines, descriptor.getUnrecognizedLines()); }
@@ -1579,7 +1643,7 @@ public class ServerDescriptorImplTest { public void testOnionKeyCrosscertDuplicate() throws DescriptorParseException { DescriptorBuilder.createWithOnionKeyCrosscertLines( - ONION_KEY_CROSSCERT_LINES + "\n" + ONION_KEY_CROSSCERT_LINES); + ONION_KEY_CROSSCERT_LINES + "\n" + ONION_KEY_CROSSCERT_LINES); }
@Test() diff --git a/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java b/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java index 62d0875..080d16d 100644 --- a/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java +++ b/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java @@ -1,19 +1,21 @@ /* Copyright 2015--2017 The Tor Project * See LICENSE for licensing information */ + package org.torproject.descriptor.impl;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull;
-import java.util.List; +import org.torproject.descriptor.Descriptor;
import org.junit.Test; -import org.torproject.descriptor.Descriptor; + +import java.util.List;
public class TorperfResultImplTest {
@Test() - public void testAnnotatedInput() throws Exception{ + public void testAnnotatedInput() throws Exception { TorperfResultImpl result = (TorperfResultImpl) (TorperfResultImpl.parseTorperfResults((torperfAnnotation + input) .getBytes("US-ASCII"), false).get(0)); @@ -29,7 +31,7 @@ public class TorperfResultImplTest { }
@Test() - public void testPartiallyAnnotatedInput() throws Exception{ + public void testPartiallyAnnotatedInput() throws Exception { byte[] asciiBytes = (torperfAnnotation + input + input + input).getBytes("US-ASCII"); List<Descriptor> result = TorperfResultImpl.parseTorperfResults(
tor-commits@lists.torproject.org