From 12c793a1e2c2a853d353125531ed68f1844aef6a Mon Sep 17 00:00:00 2001 From: ikemo Date: Mon, 22 Mar 2004 13:52:04 +0000 Subject: [PATCH] add Thread::replace git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@927 56b19765-1e22-0410-a548-a0f45d66c51a --- kita/src/libkita/tests/threadtest.cpp | 21 +++++++++++++++++++++ kita/src/libkita/tests/threadtest.h | 2 ++ kita/src/libkita/thread.cpp | 15 +++++++++++++++ kita/src/libkita/thread.h | 1 + 4 files changed, 39 insertions(+) diff --git a/kita/src/libkita/tests/threadtest.cpp b/kita/src/libkita/tests/threadtest.cpp index 99671e9..9d1a1cc 100644 --- a/kita/src/libkita/tests/threadtest.cpp +++ b/kita/src/libkita/tests/threadtest.cpp @@ -18,6 +18,9 @@ void ThreadTest::setUp() Kita::Thread::setName( "http://pc.2ch.net/linux/dat/1069738960.dat", "Kita - 2ch client for KDE" ); m_normal = Kita::Thread::getByURL( "http://pc.2ch.net/linux/dat/1069738960.dat" ); + + Kita::Board::setName( "http://pc.2ch.net/unix/", "Unix" ); + Kita::Thread::setName( "http://pc.2ch.net/unix/dat/1069738960.dat", "a thread" ); } void ThreadTest::tearDown() @@ -67,3 +70,21 @@ void ThreadTest::testBoardID() CPPUNIT_ASSERT_EQUAL( QString( "linux" ), m_normal->boardID() ); } +void ThreadTest::testReplace() +{ + Kita::Thread::replace( QString( "http://pc.2ch.net/unix/" ), + QString( "http://pc3.2ch.net/unix/" ) ); + Kita::Thread* unix = Kita::Thread::getByURL( "http://pc3.2ch.net/unix/dat/1069738960.dat" ); + + CPPUNIT_ASSERT_EQUAL( QString( "http://pc3.2ch.net/unix/dat/1069738960.dat"), + unix->datURL() ); + CPPUNIT_ASSERT_EQUAL( QString( "http://pc3.2ch.net/test/read.cgi/unix/1069738960/"), + unix->url() ); + CPPUNIT_ASSERT_EQUAL( QString( "1069738960" ), unix->datID() ); + CPPUNIT_ASSERT_EQUAL( 0, unix->resNum() ); + CPPUNIT_ASSERT_EQUAL( QString( "a thread" ), + unix->name() ); + CPPUNIT_ASSERT_EQUAL( QString( "Unix" ), unix->boardName() ); // error + CPPUNIT_ASSERT_EQUAL( QString( "http://pc3.2ch.net/unix/" ), unix->boardURL() ); + CPPUNIT_ASSERT_EQUAL( QString( "unix" ), unix->boardID() ); +} diff --git a/kita/src/libkita/tests/threadtest.h b/kita/src/libkita/tests/threadtest.h index 20fdfaa..1e7758a 100644 --- a/kita/src/libkita/tests/threadtest.h +++ b/kita/src/libkita/tests/threadtest.h @@ -26,6 +26,7 @@ class ThreadTest : public CppUnit::TestFixture { CPPUNIT_TEST( testBoardName ); CPPUNIT_TEST( testBoardURL ); CPPUNIT_TEST( testBoardID ); + CPPUNIT_TEST( testReplace ); CPPUNIT_TEST_SUITE_END(); Kita::Thread *m_normal; @@ -42,6 +43,7 @@ public: void testBoardName(); void testBoardURL(); void testBoardID(); + void testReplace(); }; #endif diff --git a/kita/src/libkita/thread.cpp b/kita/src/libkita/thread.cpp index 8f9b177..b10904f 100644 --- a/kita/src/libkita/thread.cpp +++ b/kita/src/libkita/thread.cpp @@ -135,6 +135,21 @@ void Thread::setName( const QString& datURL, const QString& threadName ) return ; } +void Thread::replace( const QString& fromURL, const QString& toURL ) +{ + QDictIterator it( *m_threadDict ); + for( ; it.current(); ++it ) { + QString url = it.currentKey(); + Kita::Thread* thread = it.current(); + if ( url.find( fromURL ) == 0 ) { + m_threadDict->remove( url ); + url = url.replace( 0, fromURL.length(), toURL ); + thread->m_datURL = url; + m_threadDict->insert( url, thread ); + } + } +} + NullThread::NullThread() {} diff --git a/kita/src/libkita/thread.h b/kita/src/libkita/thread.h index 3aa68d6..f3e5966 100644 --- a/kita/src/libkita/thread.h +++ b/kita/src/libkita/thread.h @@ -54,6 +54,7 @@ namespace Kita static Thread* getByURL( const QString& datURL ); static void setName( const QString& datURL, const QString& threadName ); + static void replace( const QString& fromURL, const QString& toURL ); private: QString m_datURL; QString m_threadName; -- 2.11.0