Add tests inspired by issue #27
This commit is contained in:
parent
698181e470
commit
2202a31b85
@ -525,3 +525,55 @@ func TestDHTInheritBlocklist(t *testing.T) {
|
|||||||
defer cl.Close()
|
defer cl.Close()
|
||||||
require.Equal(t, ipl, cl.DHT().IPBlocklist())
|
require.Equal(t, ipl, cl.DHT().IPBlocklist())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check that stuff is merged in subsequent AddTorrentSpec for the same
|
||||||
|
// infohash.
|
||||||
|
func TestAddTorrentSpecMerging(t *testing.T) {
|
||||||
|
cl, err := NewClient(&TestingConfig)
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer cl.Close()
|
||||||
|
dir, mi := testutil.GreetingTestTorrent()
|
||||||
|
defer os.RemoveAll(dir)
|
||||||
|
var ts TorrentSpec
|
||||||
|
missinggo.CopyExact(&ts.InfoHash, mi.Info.Hash)
|
||||||
|
tt, new, err := cl.AddTorrentSpec(&ts)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, new)
|
||||||
|
require.Nil(t, tt.Info())
|
||||||
|
_, new, err = cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.False(t, new)
|
||||||
|
require.NotNil(t, tt.Info())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that torrent Info is obtained from the metainfo file cache.
|
||||||
|
func TestAddTorrentMetainfoInCache(t *testing.T) {
|
||||||
|
cfg := TestingConfig
|
||||||
|
cfg.DisableMetainfoCache = false
|
||||||
|
cfg.ConfigDir, _ = ioutil.TempDir(os.TempDir(), "")
|
||||||
|
defer os.RemoveAll(cfg.ConfigDir)
|
||||||
|
cl, err := NewClient(&cfg)
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer cl.Close()
|
||||||
|
dir, mi := testutil.GreetingTestTorrent()
|
||||||
|
defer os.RemoveAll(dir)
|
||||||
|
tt, new, err := cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, new)
|
||||||
|
require.NotNil(t, tt.Info())
|
||||||
|
_, err = os.Stat(filepath.Join(cfg.ConfigDir, "torrents", fmt.Sprintf("%x.torrent", mi.Info.Hash)))
|
||||||
|
require.NoError(t, err)
|
||||||
|
// Contains only the infohash.
|
||||||
|
var ts TorrentSpec
|
||||||
|
missinggo.CopyExact(&ts.InfoHash, mi.Info.Hash)
|
||||||
|
_, ok := cl.Torrent(ts.InfoHash)
|
||||||
|
require.True(t, ok)
|
||||||
|
tt.Drop()
|
||||||
|
_, ok = cl.Torrent(ts.InfoHash)
|
||||||
|
require.False(t, ok)
|
||||||
|
tt, new, err = cl.AddTorrentSpec(&ts)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, new)
|
||||||
|
// Obtained from the metainfo cache.
|
||||||
|
require.NotNil(t, tt.Info())
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user