⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testrunnermodel.cpp

📁 这是国外的resip协议栈
💻 CPP
字号:
// //////////////////////////////////////////////////////////////////////////// Implementation file TestRunnerModel.cpp for class TestRunnerModel// (c)Copyright 2000, Baptiste Lepilleur.// Created: 2001/04/26// //////////////////////////////////////////////////////////////////////////#include "StdAfx.h"#include "TestRunnerModel.h"#include <cppunit/tools/Algorithm.h>#include <algorithm>#include <stdexcept>#include <cppunit/testsuite.h>#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifconst CString TestRunnerModel::settingKey( _T("CppUnit") );const CString TestRunnerModel::settingMainDialogKey( _T( "MainDialog" ) );const CString TestRunnerModel::settingBrowseDialogKey( _T( "BrowseDialog" ) );TestRunnerModel::TestRunnerModel( CPPUNIT_NS::Test *rootTest ) :    m_rootTest( rootTest ){}TestRunnerModel::~TestRunnerModel(){}const TestRunnerModel::History &TestRunnerModel::history() const{  return m_history;}void TestRunnerModel::selectHistoryTest( CPPUNIT_NS::Test *test ){   CPPUNIT_NS::removeFromSequence( m_history, test );    if ( test != NULL )    m_history.push_front( test );}CPPUNIT_NS::Test *TestRunnerModel::selectedTest() const{  if ( m_history.size() > 0 )    return m_history[0];  return NULL;}void TestRunnerModel::loadSettings(Settings & s){  CWinApp *app = AfxGetApp();  ASSERT( app != NULL );  int autorun = app->GetProfileInt( _T("CppUnit"),                                    _T("AutorunAtStartup"),                                    1 );  s.autorunOnLaunch = (autorun == 1);  s.col_1 = app->GetProfileInt( _T("CppUnit"), _T("Col_1"), 40 );  s.col_2 = app->GetProfileInt( _T("CppUnit"), _T("Col_2"), 40 );  s.col_3 = app->GetProfileInt( _T("CppUnit"), _T("Col_3"), 40 );  s.col_4 = app->GetProfileInt( _T("CppUnit"), _T("Col_4"), 40 );  loadHistory();}void TestRunnerModel::loadHistory(){  m_history.clear();  int idx = 1;  do  {    CString testName = loadHistoryEntry( idx++ );    if ( testName.IsEmpty() )      break;    try    {      m_history.push_back( m_rootTest->findTest( toAnsiString(testName ) ) );    }    catch ( std::invalid_argument &)    {    }  }  while ( true );}CStringTestRunnerModel::loadHistoryEntry( int idx ){  CWinApp *app = AfxGetApp();  ASSERT( app != NULL );  return app->GetProfileString( _T("CppUnit"), getHistoryEntryName( idx ) );}void TestRunnerModel::saveSettings( const Settings & s ){  CWinApp *app = AfxGetApp();  ASSERT( app != NULL );  int autorun = s.autorunOnLaunch ? 1 : 0;  app->WriteProfileInt( _T("CppUnit"), _T("AutorunAtStartup"), autorun );  app->WriteProfileInt( _T("CppUnit"), _T("Col_1"),	 s.col_1 );  app->WriteProfileInt( _T("CppUnit"), _T("Col_2"),	 s.col_2 );  app->WriteProfileInt( _T("CppUnit"), _T("Col_3"),	 s.col_3 );  app->WriteProfileInt( _T("CppUnit"), _T("Col_4"),	 s.col_4 );  int idx = 1;  for ( History::const_iterator it = m_history.begin();         it != m_history.end();         ++it , ++idx )  {    CPPUNIT_NS::Test *test = *it;    saveHistoryEntry( idx, test->getName().c_str() );  }}void TestRunnerModel::saveHistoryEntry( int idx,                                    CString testName ){  CWinApp *app = AfxGetApp();  ASSERT( app != NULL );  app->WriteProfileString( _T("CppUnit"),                           getHistoryEntryName( idx ),                           testName );}CStringTestRunnerModel::getHistoryEntryName( int idx ) const{  CString entry;  entry.Format( _T("HistoryTest%d"), idx );  return entry;}CPPUNIT_NS::Test *TestRunnerModel::rootTest(){  return m_rootTest;}void TestRunnerModel::setRootTest( CPPUNIT_NS::Test *test ){  m_rootTest = test;}CPPUNIT_NS::Test * TestRunnerModel::findTestByName( CString name ) const{  return findTestByNameFor( name, m_rootTest );}CPPUNIT_NS::Test * TestRunnerModel::findTestByNameFor( const CString &name,                                     CPPUNIT_NS::Test *test ) const{  if ( name == test->getName().c_str() )    return test;  CPPUNIT_NS::TestSuite *suite = dynamic_cast<CPPUNIT_NS::TestSuite *>(test);  if ( suite == NULL )    return NULL;  const std::vector<CPPUNIT_NS::Test *> &tests = suite->getTests();  for ( std::vector<CPPUNIT_NS::Test *>::const_iterator it = tests.begin();         it != tests.end();         ++it )  {    CPPUNIT_NS::Test *testFound = findTestByNameFor( name, *it );    if ( testFound != NULL )      return testFound;  }  return NULL;}// Utility method, should be moved somewhere else...std::string TestRunnerModel::toAnsiString( const CString &text ){#ifdef _UNICODE  int bufferLength = ::WideCharToMultiByte( CP_THREAD_ACP, 0,                                             text, text.GetLength(),                                            NULL, 0, NULL, NULL ) +1;  char *ansiString = new char[bufferLength];  ::WideCharToMultiByte( CP_THREAD_ACP, 0,                          text, text.GetLength(),                         ansiString, bufferLength,                                             NULL,                                            NULL );  std::string str( ansiString, bufferLength-1 );  delete[] ansiString;  return str;#else  return std::string( (LPCTSTR)text );#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -