public void Setup() { keys.Clear(); listener.IncompleteAnnounce = listener.IncompleteScrape = false; server = new TrackerServer(trackerId) { AllowUnregisteredTorrents = true }; server.RegisterListener(listener); client = new HttpClient(); trackerConnection = new HttpTrackerConnection(AnnounceUrl, client); tracker = new Tracker(trackerConnection); var infoHashBytes = new[] { ' ', '%', '&', '?', '&', '&', '?', '5', '1', '=' } .Select(t => (byte)t); infoHash = new InfoHash(infoHashBytes.Concat(infoHashBytes).ToArray()); announceParams = new MonoTorrent.Trackers.AnnounceRequest(infoHash) .WithPort(5555) .WithPeerId(peerId.Span.ToArray()); scrapeParams = new MonoTorrent.Trackers.ScrapeRequest(infoHash); }
public async Task NullKeyTest() { // Set a key which uses characters which need escaping. trackerConnection = new HttpTrackerConnection(AnnounceUrl, new HttpClient()); tracker = new Tracker(trackerConnection); trackerConnection.Key = null; await tracker.AnnounceAsync(announceParams, CancellationToken.None); Assert.AreEqual(null, keys[0], "#1"); }
public void CanAnnounceOrScrapeTest() { HttpTrackerConnection t = new HttpTrackerConnection(new Uri("http://mytracker.com/myurl"), new HttpClient()); Assert.IsFalse(t.CanScrape, "#1"); t = new HttpTrackerConnection(new Uri("http://mytracker.com/announce/yeah"), new HttpClient()); Assert.IsFalse(t.CanScrape, "#2"); t = new HttpTrackerConnection(new Uri("http://mytracker.com/announce"), new HttpClient()); Assert.IsTrue(t.CanScrape, "#3"); Assert.AreEqual(t.ScrapeUri, new Uri("http://mytracker.com/scrape")); t = new HttpTrackerConnection(new Uri("http://mytracker.com/announce/yeah/announce"), new HttpClient()); Assert.IsTrue(t.CanScrape, "#4"); Assert.AreEqual("http://mytracker.com/announce/yeah/scrape", t.ScrapeUri.ToString(), "#4c"); t = new HttpTrackerConnection(new Uri("http://mytracker.com/announce/"), new HttpClient()); Assert.IsTrue(t.CanScrape, "#5"); Assert.AreEqual(t.ScrapeUri, new Uri("http://mytracker.com/scrape/")); }