-// 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)
- _, ok := cl.Torrent(mi.Info.Hash())
- require.True(t, ok)
- tt.Drop()
- _, ok = cl.Torrent(mi.Info.Hash())
- require.False(t, ok)
- tt, new, err = cl.AddTorrentSpec(&TorrentSpec{
- InfoHash: mi.Info.Hash(),
- })
- require.NoError(t, err)
- require.True(t, new)
- // Obtained from the metainfo cache.
- require.NotNil(t, tt.Info())
-}
-