00001 /* 00002 00003 Copyright (C) 2006-2007 by Peter Dimov. 00004 00005 This file is part of Calitko (http://www.calitko.org). 00006 00007 Calitko is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 2 of the License, or 00010 (at your option) any later version. 00011 00012 Calitko is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Calitko; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 00021 */ 00022 00023 #include "Qt.h" 00024 #include "../MultiTrackerRequestSession.h" 00025 #include "../TrackerResponseParser.h" 00026 #include "generated/HttpRequestSessionMock.h" 00027 #include "generated/MultiTrackerRequestSessionDriver.h" 00028 #include "generated/TrackerRequestSessionMock.h" 00029 #include "Imports.cpp" 00030 00031 namespace Protocols { 00032 namespace BitTorrent { 00033 namespace Trackers { 00034 namespace Testing { 00035 00037 00041 class MultiTrackerRequestSessionTest : public CppUnit::TestFixture 00042 { 00043 CPPUNIT_TEST_SUITE (MultiTrackerRequestSessionTest); 00044 CPPUNIT_TEST_SUITE_END(); 00045 00046 auto_ptr <HttpRequestSessionMock> httpRequestSession; 00047 auto_ptr <TrackerRequestSessionStatusMock> sessionStatus; 00048 auto_ptr <MultiTrackerRequestSession> sessionReal; 00049 auto_ptr <MultiTrackerRequestSessionDriver> session; 00050 00051 Torrent::AnnounceList ValidAnnounceList; 00052 00053 public: 00054 MultiTrackerRequestSessionTest(); 00055 00056 void setUp() 00057 { 00058 httpRequestSession.reset (new HttpRequestSessionMock()); 00059 sessionStatus.reset (new TrackerRequestSessionStatusMock()); 00060 sessionReal.reset (new MultiTrackerRequestSession ( 00061 &httpRequestSession->imp, ValidAnnounceList, &sessionStatus->imp)); 00062 session.reset (new MultiTrackerRequestSessionDriver ( 00063 *sessionReal.get())); 00064 } 00065 00066 void tearDown() 00067 { 00068 session.reset(); 00069 sessionReal.reset(); 00070 sessionStatus.reset(); 00071 httpRequestSession.reset(); 00072 } 00073 }; 00074 00075 CPPUNIT_TEST_SUITE_REGISTRATION(MultiTrackerRequestSessionTest); 00076 00078 MultiTrackerRequestSessionTest::MultiTrackerRequestSessionTest() 00079 : httpRequestSession(), 00080 sessionStatus(), 00081 sessionReal(), 00082 session(), 00083 ValidAnnounceList() 00084 { 00085 QList <Uri> firstTier; 00086 firstTier += Uri::fromUnencoded ("http://tracker11.com/announce.php"); 00087 firstTier += Uri::fromUnencoded ("http://tracker12.com/announce.php"); 00088 firstTier += Uri::fromUnencoded ("http://tracker13.com/announce.php"); 00089 ValidAnnounceList += firstTier; 00090 00091 QList <Uri> secondTier; 00092 secondTier += Uri::fromUnencoded ("http://tracker21.com/announce.php"); 00093 secondTier += Uri::fromUnencoded ("http://tracker22.com/announce.php"); 00094 secondTier += Uri::fromUnencoded ("http://tracker23.com/announce.php"); 00095 ValidAnnounceList += secondTier; 00096 } 00097 00098 } // namespace Testing 00099 } // namespace Trackers 00100 } // namespace BitTorrent 00101 } // namespace Protocols