mirror of
https://github.com/ap-pauloafonso/ratio-spoof.git
synced 2026-01-11 20:10:22 +00:00
57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
package tracker
|
|
|
|
import (
|
|
"github.com/ap-pauloafonso/ratio-spoof/bencode"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewHttpTracker(t *testing.T) {
|
|
_, err := NewHttpTracker(&bencode.TorrentInfo{TrackerInfo: &bencode.TrackerInfo{Urls: []string{"udp://url1", "udp://url2"}}})
|
|
got := err.Error()
|
|
want := "No tcp/http tracker url announce found"
|
|
|
|
if got != want {
|
|
t.Errorf("got: %v want %v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSwapFirst(t *testing.T) {
|
|
tracker, _ := NewHttpTracker(&bencode.TorrentInfo{TrackerInfo: &bencode.TrackerInfo{Urls: []string{"http://url1", "http://url2", "http://url3", "http://url4"}}})
|
|
tracker.swapFirst(3)
|
|
|
|
got := tracker.Urls
|
|
want := []string{"http://url4", "http://url2", "http://url3", "http://url1"}
|
|
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Errorf("got: %v want %v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestHandleSuccessfulResponse(t *testing.T) {
|
|
|
|
t.Run("Empty interval should be overided with 1800 ", func(t *testing.T) {
|
|
tracker, _ := NewHttpTracker(&bencode.TorrentInfo{TrackerInfo: &bencode.TrackerInfo{Urls: []string{"http://url1", "http://url2", "http://url3", "http://url4"}}})
|
|
r := TrackerResponse{}
|
|
tracker.handleSuccessfulResponse(&r)
|
|
got := r.Interval
|
|
want := 1800
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Errorf("got: %v want %v", got, want)
|
|
}
|
|
|
|
})
|
|
|
|
t.Run("Valid interval shouldn't be overwritten", func(t *testing.T) {
|
|
tracker, _ := NewHttpTracker(&bencode.TorrentInfo{TrackerInfo: &bencode.TrackerInfo{Urls: []string{"http://url1", "http://url2", "http://url3", "http://url4"}}})
|
|
r := TrackerResponse{Interval: 900}
|
|
tracker.handleSuccessfulResponse(&r)
|
|
got := r.Interval
|
|
want := 900
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Errorf("got: %v want %v", got, want)
|
|
}
|
|
|
|
})
|
|
|
|
}
|