OSDN Git Service

Create unit test framework
authorhirami <hirami@users.sourceforge.jp>
Mon, 2 Mar 2009 13:12:56 +0000 (22:12 +0900)
committerhirami <hirami@users.sourceforge.jp>
Mon, 2 Mar 2009 13:12:56 +0000 (22:12 +0900)
49 files changed:
.gitignore
CppUnitTestApp/CppUnitTestApp.cpp [deleted file]
CppUnitTestApp/CppUnitTestApp.dsp [deleted file]
CppUnitTestApp/CppUnitTestApp.dsw [deleted file]
CppUnitTestApp/CppUnitTestApp.h [deleted file]
CppUnitTestApp/CppUnitTestApp.rc [deleted file]
CppUnitTestApp/CppUnitTestAppDlg.cpp [deleted file]
CppUnitTestApp/CppUnitTestAppDlg.h [deleted file]
CppUnitTestApp/ReadMe.txt [deleted file]
CppUnitTestApp/ReadMe_Tombo.txt [deleted file]
CppUnitTestApp/Resource.h [deleted file]
CppUnitTestApp/StdAfx.cpp [deleted file]
CppUnitTestApp/StdAfx.h [deleted file]
CppUnitTestApp/res/CppUnitTestApp.ico [deleted file]
CppUnitTestApp/res/CppUnitTestApp.rc2 [deleted file]
CppUnitTestApp/test/MemoInfoTest.cpp [deleted file]
CppUnitTestApp/test/RegexTest.cpp [deleted file]
CppUnitTestApp/test/SharedStringTest.cpp [deleted file]
CppUnitTestApp/test/TomboURITest.cpp [deleted file]
CppUnitTestApp/test/UniConvTest.cpp [deleted file]
CppUnitTestApp/test/VarBufferTest.cpp [deleted file]
CppUnitTestApp/test/XXXTest.cpp [deleted file]
CppUnitTestApp/test/YAEditDocTest.cpp [deleted file]
Src/TomboLib/TString.h
Src/TomboLib/Uniconv.cpp
Src/TomboLib/VarBuffer.h
Src/TomboURI.h
Src/YAEdit/PhysicalLineManager.cpp
Src/YAEdit/YAEditDoc.cpp
UnitTest/UnitTest.sln [new file with mode: 0644]
UnitTest/UnitTest/TestRunner.cpp [new file with mode: 0644]
UnitTest/UnitTest/TestRunner.h [new file with mode: 0644]
UnitTest/UnitTest/UnitTest.aps [new file with mode: 0644]
UnitTest/UnitTest/UnitTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/UnitTest.h [new file with mode: 0644]
UnitTest/UnitTest/UnitTest.rc [new file with mode: 0644]
UnitTest/UnitTest/UnitTest.vcproj [new file with mode: 0644]
UnitTest/UnitTest/resource.h [new file with mode: 0644]
UnitTest/UnitTest/stdafx.cpp [new file with mode: 0644]
UnitTest/UnitTest/stdafx.h [new file with mode: 0644]
UnitTest/UnitTest/testcase/MemoInfoTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/RegexTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/SharedStringTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/TomboURITest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/URIScannerTest.cpp [moved from CppUnitTestApp/test/URIScannerTest.cpp with 81% similarity]
UnitTest/UnitTest/testcase/UniConvTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/VarBufferTest.cpp [new file with mode: 0644]
UnitTest/UnitTest/testcase/YAEditDocTest.cpp [new file with mode: 0644]
Win32/Tombo/Tombo.suo

index e7c2574..cf8d811 100644 (file)
@@ -3,3 +3,11 @@ Win32/Tombo/Tombo/Debug
 Win32/Tombo/Tombo/Release\r
 Win32/Tombo/debug\r
 Win32/Tombo/release\r
+\r
+UnitTest/UnitTest/Debug\r
+UnitTest/UnitTest/Release\r
+UnitTest/debug\r
+UnitTest/release\r
+\r
+*.suo\r
+*.ncb\r
diff --git a/CppUnitTestApp/CppUnitTestApp.cpp b/CppUnitTestApp/CppUnitTestApp.cpp
deleted file mode 100644 (file)
index 0f46ae6..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-// CppUnitTestApp.cpp : Defines the class behaviors for the application.\r
-//\r
-\r
-#include "stdafx.h"\r
-#include "CppUnitTestApp.h"\r
-#include "CppUnitTestAppDlg.h"\r
-#include <cppunit/ui/mfc/TestRunner.h>\r
-#include <cppunit/extensions/TestFactoryRegistry.h>\r
-\r
-#ifdef _DEBUG\r
-#define new DEBUG_NEW\r
-#undef THIS_FILE\r
-static char THIS_FILE[] = __FILE__;\r
-#endif\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestApp\r
-\r
-BEGIN_MESSAGE_MAP(CppUnitTestApp, CWinApp)\r
-       //{{AFX_MSG_MAP(CppUnitTestApp)\r
-               // NOTE - the ClassWizard will add and remove mapping macros here.\r
-               //    DO NOT EDIT what you see in these blocks of generated code!\r
-       //}}AFX_MSG\r
-       ON_COMMAND(ID_HELP, CWinApp::OnHelp)\r
-END_MESSAGE_MAP()\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestApp construction\r
-\r
-CppUnitTestApp::CppUnitTestApp()\r
-{\r
-       // TODO: add construction code here,\r
-       // Place all significant initialization in InitInstance\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// The one and only CppUnitTestApp object\r
-\r
-CppUnitTestApp theApp;\r
-\r
-HINSTANCE g_hInstance;\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestApp initialization\r
-\r
-BOOL \r
-CppUnitTestApp::InitInstance()\r
-{\r
-       AfxEnableControlContainer();\r
-       g_hInstance = m_hInstance;\r
-\r
-       // Standard initialization\r
-       // If you are not using these features and wish to reduce the size\r
-       //  of your final executable, you should remove from the following\r
-       //  the specific initialization routines you do not need.\r
-\r
-#ifdef _AFXDLL\r
-# if _MSC_VER < 1300   // vc6\r
-       Enable3dControls();                     // Call this when using MFC in a shared DLL\r
-# endif\r
-#else\r
-       Enable3dControlsStatic();       // Call this when linking to MFC statically\r
-#endif\r
-\r
-  SetRegistryKey(_T("Local AppWizard-Generated Applications"));\r
-\r
-  RunTests();        \r
-\r
-  \r
-  // Since the dialog has been closed, return FALSE so that we exit the\r
-       //  application, rather than start the application's message pump.\r
-       return FALSE;\r
-}\r
-\r
-\r
-void \r
-CppUnitTestApp::RunTests()\r
-{\r
-  CPPUNIT_NS::MfcUi::TestRunner runner;\r
-\r
-  runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );\r
-\r
-  runner.run();\r
-}\r
diff --git a/CppUnitTestApp/CppUnitTestApp.dsp b/CppUnitTestApp/CppUnitTestApp.dsp
deleted file mode 100644 (file)
index 21ce146..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-# Microsoft Developer Studio Project File - Name="CppUnitTestApp" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
-\r
-# TARGTYPE "Win32 (x86) Application" 0x0101\r
-\r
-CFG=CppUnitTestApp - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "CppUnitTestApp.mak".\r
-!MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "CppUnitTestApp.mak" CFG="CppUnitTestApp - Win32 Debug"\r
-!MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
-!MESSAGE \r
-!MESSAGE "CppUnitTestApp - Win32 Release" ("Win32 (x86) Application" \97p)\r
-!MESSAGE "CppUnitTestApp - Win32 Debug" ("Win32 (x86) Application" \97p)\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName ""\r
-# PROP Scc_LocalPath ""\r
-CPP=cl.exe\r
-MTL=midl.exe\r
-RSC=rc.exe\r
-\r
-!IF  "$(CFG)" == "CppUnitTestApp - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 6\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 6\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release"\r
-# PROP Intermediate_Dir "Release"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c\r
-# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../.." /I "../Src" /I "../Src/TomboLib" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "CPPUNIT_USE_TYPEINFO" /D "PLATFORM_WIN32" /FD /c\r
-# SUBTRACT CPP /YX /Yc /Yu\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL"\r
-# ADD RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386\r
-# ADD LINK32 ../../../Lib/cppunit.lib ../../../Lib/testrunner.lib /nologo /subsystem:windows /machine:I386\r
-\r
-!ELSEIF  "$(CFG)" == "CppUnitTestApp - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 6\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 6\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug"\r
-# PROP Intermediate_Dir "Debug"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "../Src" /I "../Src/TomboLib" /I "../Src/YAEdit" /I "." /I "../cppunit/include" /I "../oniguruma/" /I "../Src/TSSRepository/" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "CPPUNIT_USE_TYPEINFO" /D "PLATFORM_WIN32" /D "USE_CPPUNIT" /D "TOMBO" /FD /GZ /c\r
-# SUBTRACT CPP /YX /Yc /Yu\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL"\r
-# ADD RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-# ADD LINK32 ../cppunit/lib/cppunitd.lib ../cppunit/lib/testrunnerd.lib ws2_32.lib wininet.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "CppUnitTestApp - Win32 Release"\r
-# Name "CppUnitTestApp - Win32 Debug"\r
-# Begin Group "GUI"\r
-\r
-# PROP Default_Filter ""\r
-# Begin Source File\r
-\r
-SOURCE=.\CppUnitTestApp.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\CppUnitTestApp.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\CppUnitTestApp.rc\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\CppUnitTestAppDlg.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\CppUnitTestAppDlg.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\Resource.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\StdAfx.cpp\r
-# ADD CPP /Yc"stdafx.h"\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\StdAfx.h\r
-# End Source File\r
-# End Group\r
-# Begin Group "Resource Files"\r
-\r
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-# Begin Source File\r
-\r
-SOURCE=.\res\CppUnitTestApp.ico\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res\CppUnitTestApp.rc2\r
-# End Source File\r
-# End Group\r
-# Begin Group "Tests"\r
-\r
-# PROP Default_Filter ""\r
-# Begin Source File\r
-\r
-SOURCE=.\test\CryptTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\MemoInfoTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\RegexTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\SharedStringTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\TomboURITest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\UniConvTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\URIScannerTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\VarBufferTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\XXXTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\YAEditDocTest.cpp\r
-# End Source File\r
-# End Group\r
-# Begin Group "Target"\r
-\r
-# PROP Default_Filter ""\r
-# Begin Group "YAEdit"\r
-\r
-# PROP Default_Filter ""\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\MemManager.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\MemManager.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\PhysicalLineManager.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\PhysicalLineManager.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\Region.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\StringSplitter.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\StringSplitter.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\YAEditDoc.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\YAEdit\YAEditDoc.h\r
-# End Source File\r
-# End Group\r
-# Begin Group "misc"\r
-\r
-# PROP Default_Filter ""\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\AutoPtr.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\GNUPG\bithelp.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\GNUPG\blowfish.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\Chipher.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\Crypt.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\Crypt.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\CryptManager.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\CryptManager.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\File.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\File.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\HttpUtil.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\HttpUtil.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\HttpUtilTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TSSRepository\LocalCache.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TSSRepository\LocalCache.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\test\LocalCacheTest.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\GNUPG\md5.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\MemoInfo.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\MemoInfo.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\Message.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\Message.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboURI.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboURI.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\TString.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\TString.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\Uniconv.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\Uniconv.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\URIScanner.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\URIScanner.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\regex\util.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\VarBuffer.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TomboLib\VarBuffer.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\oniguruma\win32\oniguruma.lib\r
-# End Source File\r
-# End Group\r
-# End Group\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TSSRepository\TSSCrypt.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\Src\TSSRepository\TSSCrypt.h\r
-# End Source File\r
-# End Target\r
-# End Project\r
diff --git a/CppUnitTestApp/CppUnitTestApp.dsw b/CppUnitTestApp/CppUnitTestApp.dsw
deleted file mode 100644 (file)
index 6baf3b5..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
-\r
-###############################################################################\r
-\r
-Project: "CppUnitTestApp"=.\CppUnitTestApp.dsp - Package Owner=<4>\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<4>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
-Global:\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<3>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
diff --git a/CppUnitTestApp/CppUnitTestApp.h b/CppUnitTestApp/CppUnitTestApp.h
deleted file mode 100644 (file)
index 7ae7a52..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// CppUnitTestApp.h : main header file for the CPPUNITTESTAPP application\r
-//\r
-\r
-#if !defined(AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_)\r
-#define AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_\r
-\r
-#if _MSC_VER > 1000\r
-#pragma once\r
-#endif // _MSC_VER > 1000\r
-\r
-#ifndef __AFXWIN_H__\r
-       #error include 'stdafx.h' before including this file for PCH\r
-#endif\r
-\r
-#include "resource.h"          // main symbols\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestApp:\r
-// See CppUnitTestApp.cpp for the implementation of this class\r
-//\r
-\r
-class CppUnitTestApp : public CWinApp\r
-{\r
-public:\r
-       CppUnitTestApp();\r
-\r
-// Overrides\r
-       // ClassWizard generated virtual function overrides\r
-       //{{AFX_VIRTUAL(CppUnitTestApp)\r
-       public:\r
-       virtual BOOL InitInstance();\r
-       //}}AFX_VIRTUAL\r
-\r
-// Implementation\r
-\r
-       //{{AFX_MSG(CppUnitTestApp)\r
-               // NOTE - the ClassWizard will add and remove member functions here.\r
-               //    DO NOT EDIT what you see in these blocks of generated code !\r
-       //}}AFX_MSG\r
-       DECLARE_MESSAGE_MAP()\r
-\r
-private:\r
-  void RunTests();\r
-};\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-//{{AFX_INSERT_LOCATION}}\r
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
-\r
-#endif // !defined(AFX_CPPUNITTESTAPP_H__6569C745_ED89_4902_9794_AD8422583BC1__INCLUDED_)\r
diff --git a/CppUnitTestApp/CppUnitTestApp.rc b/CppUnitTestApp/CppUnitTestApp.rc
deleted file mode 100644 (file)
index 158cc9e..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-//Microsoft Developer Studio generated resource script.\r
-//\r
-#include "resource.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 235, 55\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "About CppUnitTestApp"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20\r
-    LTEXT           "CppUnitTestApp Version 1.0",IDC_STATIC,40,10,119,8,\r
-                    SS_NOPREFIX\r
-    LTEXT           "Copyright (C) 2001",IDC_STATIC,40,25,119,8\r
-    DEFPUSHBUTTON   "OK",IDOK,178,7,50,14,WS_GROUP\r
-END\r
-\r
-IDD_CPPUNITTESTAPP_DIALOG DIALOGEX 0, 0, 320, 200\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-EXSTYLE WS_EX_APPWINDOW\r
-CAPTION "CppUnitTestApp"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,260,7,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,260,23,50,14\r
-    LTEXT           "TODO: Place dialog controls here.",IDC_STATIC,50,90,200,\r
-                    8\r
-END\r
-\r
-\r
-#ifndef _MAC\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Version\r
-//\r
-\r
-VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,0,0,1\r
- PRODUCTVERSION 1,0,0,1\r
- FILEFLAGSMASK 0x3fL\r
-#ifdef _DEBUG\r
- FILEFLAGS 0x1L\r
-#else\r
- FILEFLAGS 0x0L\r
-#endif\r
- FILEOS 0x4L\r
- FILETYPE 0x1L\r
- FILESUBTYPE 0x0L\r
-BEGIN\r
-    BLOCK "StringFileInfo"\r
-    BEGIN\r
-        BLOCK "040904B0"\r
-        BEGIN\r
-            VALUE "CompanyName", "\0"\r
-            VALUE "FileDescription", "CppUnitTestApp MFC Application\0"\r
-            VALUE "FileVersion", "1, 0, 0, 1\0"\r
-            VALUE "InternalName", "CppUnitTestApp\0"\r
-            VALUE "LegalCopyright", "Copyright (C) 2001\0"\r
-            VALUE "LegalTrademarks", "\0"\r
-            VALUE "OriginalFilename", "CppUnitTestApp.EXE\0"\r
-            VALUE "ProductName", "CppUnitTestApp Application\0"\r
-            VALUE "ProductVersion", "1, 0, 0, 1\0"\r
-        END\r
-    END\r
-    BLOCK "VarFileInfo"\r
-    BEGIN\r
-        VALUE "Translation", 0x409, 1200\r
-    END\r
-END\r
-\r
-#endif    // !_MAC\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO DISCARDABLE \r
-BEGIN\r
-    IDD_ABOUTBOX, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 48\r
-    END\r
-\r
-    IDD_CPPUNITTESTAPP_DIALOG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 313\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 193\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE DISCARDABLE \r
-BEGIN\r
-    IDS_ABOUTBOX            "&About CppUnitTestApp..."\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// French (France) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "resource.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"\r
-    "#define _AFX_NO_OLE_RESOURCES\r\n"\r
-    "#define _AFX_NO_TRACKER_RESOURCES\r\n"\r
-    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"\r
-    "\r\n"\r
-    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"\r
-    "#ifdef _WIN32\r\n"\r
-    "LANGUAGE 9, 1\r\n"\r
-    "#pragma code_page(1252)\r\n"\r
-    "#endif //_WIN32\r\n"\r
-    "#include ""res\\CppUnitTestApp.rc2""  // non-Microsoft Visual C++ edited resources\r\n"\r
-    "#include ""afxres.rc""         // Standard components\r\n"\r
-    "#endif\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDR_MAINFRAME           ICON    DISCARDABLE     "res\\CppUnitTestApp.ico"\r
-#endif    // French (France) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-#define _AFX_NO_SPLITTER_RESOURCES\r
-#define _AFX_NO_OLE_RESOURCES\r
-#define _AFX_NO_TRACKER_RESOURCES\r
-#define _AFX_NO_PROPERTY_RESOURCES\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE 9, 1\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-#include "res\CppUnitTestApp.rc2"  // non-Microsoft Visual C++ edited resources\r
-#include "afxres.rc"         // Standard components\r
-#endif\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
diff --git a/CppUnitTestApp/CppUnitTestAppDlg.cpp b/CppUnitTestApp/CppUnitTestAppDlg.cpp
deleted file mode 100644 (file)
index 28038ac..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-// CppUnitTestAppDlg.cpp : implementation file\r
-//\r
-\r
-#include "stdafx.h"\r
-#include "CppUnitTestApp.h"\r
-#include "CppUnitTestAppDlg.h"\r
-\r
-#ifdef _DEBUG\r
-#define new DEBUG_NEW\r
-#undef THIS_FILE\r
-static char THIS_FILE[] = __FILE__;\r
-#endif\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CAboutDlg dialog used for App About\r
-\r
-class CAboutDlg : public CDialog\r
-{\r
-public:\r
-       CAboutDlg();\r
-\r
-// Dialog Data\r
-       //{{AFX_DATA(CAboutDlg)\r
-       enum { IDD = IDD_ABOUTBOX };\r
-       //}}AFX_DATA\r
-\r
-       // ClassWizard generated virtual function overrides\r
-       //{{AFX_VIRTUAL(CAboutDlg)\r
-       protected:\r
-       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
-       //}}AFX_VIRTUAL\r
-\r
-// Implementation\r
-protected:\r
-       //{{AFX_MSG(CAboutDlg)\r
-       //}}AFX_MSG\r
-       DECLARE_MESSAGE_MAP()\r
-};\r
-\r
-CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)\r
-{\r
-       //{{AFX_DATA_INIT(CAboutDlg)\r
-       //}}AFX_DATA_INIT\r
-}\r
-\r
-void CAboutDlg::DoDataExchange(CDataExchange* pDX)\r
-{\r
-       CDialog::DoDataExchange(pDX);\r
-       //{{AFX_DATA_MAP(CAboutDlg)\r
-       //}}AFX_DATA_MAP\r
-}\r
-\r
-BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)\r
-       //{{AFX_MSG_MAP(CAboutDlg)\r
-               // No message handlers\r
-       //}}AFX_MSG_MAP\r
-END_MESSAGE_MAP()\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestAppDlg dialog\r
-\r
-CppUnitTestAppDlg::CppUnitTestAppDlg(CWnd* pParent /*=NULL*/)\r
-       : CDialog(CppUnitTestAppDlg::IDD, pParent)\r
-{\r
-       //{{AFX_DATA_INIT(CppUnitTestAppDlg)\r
-               // NOTE: the ClassWizard will add member initialization here\r
-       //}}AFX_DATA_INIT\r
-       // Note that LoadIcon does not require a subsequent DestroyIcon in Win32\r
-       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);\r
-}\r
-\r
-void CppUnitTestAppDlg::DoDataExchange(CDataExchange* pDX)\r
-{\r
-       CDialog::DoDataExchange(pDX);\r
-       //{{AFX_DATA_MAP(CppUnitTestAppDlg)\r
-               // NOTE: the ClassWizard will add DDX and DDV calls here\r
-       //}}AFX_DATA_MAP\r
-}\r
-\r
-BEGIN_MESSAGE_MAP(CppUnitTestAppDlg, CDialog)\r
-       //{{AFX_MSG_MAP(CppUnitTestAppDlg)\r
-       ON_WM_SYSCOMMAND()\r
-       ON_WM_PAINT()\r
-       ON_WM_QUERYDRAGICON()\r
-       //}}AFX_MSG_MAP\r
-END_MESSAGE_MAP()\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestAppDlg message handlers\r
-\r
-BOOL CppUnitTestAppDlg::OnInitDialog()\r
-{\r
-       CDialog::OnInitDialog();\r
-\r
-       // Add "About..." menu item to system menu.\r
-\r
-       // IDM_ABOUTBOX must be in the system command range.\r
-       ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);\r
-       ASSERT(IDM_ABOUTBOX < 0xF000);\r
-\r
-       CMenu* pSysMenu = GetSystemMenu(FALSE);\r
-       if (pSysMenu != NULL)\r
-       {\r
-               CString strAboutMenu;\r
-               strAboutMenu.LoadString(IDS_ABOUTBOX);\r
-               if (!strAboutMenu.IsEmpty())\r
-               {\r
-                       pSysMenu->AppendMenu(MF_SEPARATOR);\r
-                       pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);\r
-               }\r
-       }\r
-\r
-       // Set the icon for this dialog.  The framework does this automatically\r
-       //  when the application's main window is not a dialog\r
-       SetIcon(m_hIcon, TRUE);                 // Set big icon\r
-       SetIcon(m_hIcon, FALSE);                // Set small icon\r
-       \r
-       // TODO: Add extra initialization here\r
-       \r
-       return TRUE;  // return TRUE  unless you set the focus to a control\r
-}\r
-\r
-void CppUnitTestAppDlg::OnSysCommand(UINT nID, LPARAM lParam)\r
-{\r
-       if ((nID & 0xFFF0) == IDM_ABOUTBOX)\r
-       {\r
-               CAboutDlg dlgAbout;\r
-               dlgAbout.DoModal();\r
-       }\r
-       else\r
-       {\r
-               CDialog::OnSysCommand(nID, lParam);\r
-       }\r
-}\r
-\r
-// If you add a minimize button to your dialog, you will need the code below\r
-//  to draw the icon.  For MFC applications using the document/view model,\r
-//  this is automatically done for you by the framework.\r
-\r
-void CppUnitTestAppDlg::OnPaint() \r
-{\r
-       if (IsIconic())\r
-       {\r
-               CPaintDC dc(this); // device context for painting\r
-\r
-               SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);\r
-\r
-               // Center icon in client rectangle\r
-               int cxIcon = GetSystemMetrics(SM_CXICON);\r
-               int cyIcon = GetSystemMetrics(SM_CYICON);\r
-               CRect rect;\r
-               GetClientRect(&rect);\r
-               int x = (rect.Width() - cxIcon + 1) / 2;\r
-               int y = (rect.Height() - cyIcon + 1) / 2;\r
-\r
-               // Draw the icon\r
-               dc.DrawIcon(x, y, m_hIcon);\r
-       }\r
-       else\r
-       {\r
-               CDialog::OnPaint();\r
-       }\r
-}\r
-\r
-// The system calls this to obtain the cursor to display while the user drags\r
-//  the minimized window.\r
-HCURSOR CppUnitTestAppDlg::OnQueryDragIcon()\r
-{\r
-       return (HCURSOR) m_hIcon;\r
-}\r
diff --git a/CppUnitTestApp/CppUnitTestAppDlg.h b/CppUnitTestApp/CppUnitTestAppDlg.h
deleted file mode 100644 (file)
index 40ac519..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// CppUnitTestAppDlg.h : header file\r
-//\r
-\r
-#if !defined(AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_)\r
-#define AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_\r
-\r
-#if _MSC_VER > 1000\r
-#pragma once\r
-#endif // _MSC_VER > 1000\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CppUnitTestAppDlg dialog\r
-\r
-class CppUnitTestAppDlg : public CDialog\r
-{\r
-// Construction\r
-public:\r
-       CppUnitTestAppDlg(CWnd* pParent = NULL);        // standard constructor\r
-\r
-// Dialog Data\r
-       //{{AFX_DATA(CppUnitTestAppDlg)\r
-       enum { IDD = IDD_CPPUNITTESTAPP_DIALOG };\r
-               // NOTE: the ClassWizard will add data members here\r
-       //}}AFX_DATA\r
-\r
-       // ClassWizard generated virtual function overrides\r
-       //{{AFX_VIRTUAL(CppUnitTestAppDlg)\r
-       protected:\r
-       virtual void DoDataExchange(CDataExchange* pDX);        // DDX/DDV support\r
-       //}}AFX_VIRTUAL\r
-\r
-// Implementation\r
-protected:\r
-       HICON m_hIcon;\r
-\r
-       // Generated message map functions\r
-       //{{AFX_MSG(CppUnitTestAppDlg)\r
-       virtual BOOL OnInitDialog();\r
-       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);\r
-       afx_msg void OnPaint();\r
-       afx_msg HCURSOR OnQueryDragIcon();\r
-       //}}AFX_MSG\r
-       DECLARE_MESSAGE_MAP()\r
-};\r
-\r
-//{{AFX_INSERT_LOCATION}}\r
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
-\r
-#endif // !defined(AFX_CPPUNITTESTAPPDLG_H__25E1CF20_72A4_4E25_B930_626DF60AD4C7__INCLUDED_)\r
diff --git a/CppUnitTestApp/ReadMe.txt b/CppUnitTestApp/ReadMe.txt
deleted file mode 100644 (file)
index 9128b08..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-========================================================================\r
-       MICROSOFT FOUNDATION CLASS LIBRARY : CppUnitTestApp\r
-========================================================================\r
-\r
-\r
-AppWizard has created this CppUnitTestApp application for you.  This application\r
-not only demonstrates the basics of using the Microsoft Foundation classes\r
-but is also a starting point for writing your application.\r
-\r
-This file contains a summary of what you will find in each of the files that\r
-make up your CppUnitTestApp application.\r
-\r
-CppUnitTestApp.dsp\r
-    This file (the project file) contains information at the project level and\r
-    is used to build a single project or subproject. Other users can share the\r
-    project (.dsp) file, but they should export the makefiles locally.\r
-\r
-CppUnitTestApp.h\r
-    This is the main header file for the application.  It includes other\r
-    project specific headers (including Resource.h) and declares the\r
-    CppUnitTestApp application class.\r
-\r
-CppUnitTestApp.cpp\r
-    This is the main application source file that contains the application\r
-    class CppUnitTestApp.\r
-\r
-CppUnitTestApp.rc\r
-    This is a listing of all of the Microsoft Windows resources that the\r
-    program uses.  It includes the icons, bitmaps, and cursors that are stored\r
-    in the RES subdirectory.  This file can be directly edited in Microsoft\r
-       Visual C++.\r
-\r
-CppUnitTestApp.clw\r
-    This file contains information used by ClassWizard to edit existing\r
-    classes or add new classes.  ClassWizard also uses this file to store\r
-    information needed to create and edit message maps and dialog data\r
-    maps and to create prototype member functions.\r
-\r
-res\CppUnitTestApp.ico\r
-    This is an icon file, which is used as the application's icon.  This\r
-    icon is included by the main resource file CppUnitTestApp.rc.\r
-\r
-res\CppUnitTestApp.rc2\r
-    This file contains resources that are not edited by Microsoft \r
-       Visual C++.  You should place all resources not editable by\r
-       the resource editor in this file.\r
-\r
-\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-AppWizard creates one dialog class:\r
-\r
-CppUnitTestAppDlg.h, CppUnitTestAppDlg.cpp - the dialog\r
-    These files contain your CppUnitTestAppDlg class.  This class defines\r
-    the behavior of your application's main dialog.  The dialog's\r
-    template is in CppUnitTestApp.rc, which can be edited in Microsoft\r
-       Visual C++.\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-Other standard files:\r
-\r
-StdAfx.h, StdAfx.cpp\r
-    These files are used to build a precompiled header (PCH) file\r
-    named CppUnitTestApp.pch and a precompiled types file named StdAfx.obj.\r
-\r
-Resource.h\r
-    This is the standard header file, which defines new resource IDs.\r
-    Microsoft Visual C++ reads and updates this file.\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-Other notes:\r
-\r
-AppWizard uses "TODO:" to indicate parts of the source code you\r
-should add to or customize.\r
-\r
-If your application uses MFC in a shared DLL, and your application is \r
-in a language other than the operating system's current language, you\r
-will need to copy the corresponding localized resources MFC42XXX.DLL\r
-from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,\r
-and rename it to be MFCLOC.DLL.  ("XXX" stands for the language abbreviation.\r
-For example, MFC42DEU.DLL contains resources translated to German.)  If you\r
-don't do this, some of the UI elements of your application will remain in the\r
-language of the operating system.\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
diff --git a/CppUnitTestApp/ReadMe_Tombo.txt b/CppUnitTestApp/ReadMe_Tombo.txt
deleted file mode 100644 (file)
index 006b530..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Unit test app for TOMBO sources.\r
-\r
-Most of the file under this directory is a part of cppunit-1.10.2 except folder "test".\r
-\r
-For details about cppunit, please see :\r
-http://cppunit.sourceforge.net/cppunit-wiki\r
-\r
-To test using by CppUnitTestApp, you have to :\r
-1. install cppunit.\r
-2. Add include/library path to project.\r
-3. Place testrunnerd.dll under the "Debug" folder.\r
-\r
-Tombo/\r
- +- BE300/\r
- +- cppunit/\r
- |   +- lib/\r
- |   |   +- cppunitd.lib, testrunnerd.lib\r
- |   +- include/\r
- |       +- cppunit/\r
- |            +- (config/, extensions/, Test.h, TestAssert.h , ... \r
- +- CppUnitTestApp\r
-   ....\r
-\r
-\r
-hirami\r
diff --git a/CppUnitTestApp/Resource.h b/CppUnitTestApp/Resource.h
deleted file mode 100644 (file)
index b0f9f9e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-//{{NO_DEPENDENCIES}}\r
-// Microsoft Visual C++ generated include file.\r
-// Used by CPPUNITTESTAPP.RC\r
-//\r
-#define IDR_MAINFRAME                                  128\r
-#define IDM_ABOUTBOX                                   0x0010\r
-#define IDD_ABOUTBOX                                   100\r
-#define IDS_ABOUTBOX                                   101\r
-#define IDD_CPPUNITTESTAPP_DIALOG                              102\r
-\r
-// Next default values for new objects\r
-// \r
-#ifdef APSTUDIO_INVOKED\r
-#ifndef APSTUDIO_READONLY_SYMBOLS\r
-\r
-#define _APS_NEXT_RESOURCE_VALUE       129\r
-#define _APS_NEXT_CONTROL_VALUE                1000\r
-#define _APS_NEXT_SYMED_VALUE          101\r
-#define _APS_NEXT_COMMAND_VALUE                32771\r
-#endif\r
-#endif\r
diff --git a/CppUnitTestApp/StdAfx.cpp b/CppUnitTestApp/StdAfx.cpp
deleted file mode 100644 (file)
index 1e98dd0..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes\r
-//     CppUnitTestApp.pch will be the pre-compiled header\r
-//     stdafx.obj will contain the pre-compiled type information\r
-\r
-#include "stdafx.h"\r
-\r
-\r
-\r
diff --git a/CppUnitTestApp/StdAfx.h b/CppUnitTestApp/StdAfx.h
deleted file mode 100644 (file)
index 21bc64b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// stdafx.h : include file for standard system include files,\r
-//  or project specific include files that are used frequently, but\r
-//      are changed infrequently\r
-//\r
-\r
-#if !defined(AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_)\r
-#define AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_\r
-\r
-#if _MSC_VER > 1000\r
-#pragma once\r
-#endif // _MSC_VER > 1000\r
-\r
-#define VC_EXTRALEAN           // Exclude rarely-used stuff from Windows headers\r
-\r
-#include <afxwin.h>         // MFC core and standard components\r
-#include <afxext.h>         // MFC extensions\r
-#include <afxdisp.h>        // MFC Automation classes\r
-#include <afxdtctl.h>          // MFC support for Internet Explorer 4 Common Controls\r
-#ifndef _AFX_NO_AFXCMN_SUPPORT\r
-#include <afxcmn.h>                    // MFC support for Windows Common Controls\r
-#endif // _AFX_NO_AFXCMN_SUPPORT\r
-\r
-#pragma warning( disable : 4786 )   // remove warning "debug symbol length > 255..."\r
-\r
-//{{AFX_INSERT_LOCATION}}\r
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
-\r
-#endif // !defined(AFX_STDAFX_H__EB0CB528_6505_4130_843B_9CA567127807__INCLUDED_)\r
diff --git a/CppUnitTestApp/res/CppUnitTestApp.ico b/CppUnitTestApp/res/CppUnitTestApp.ico
deleted file mode 100644 (file)
index 7eef0bc..0000000
Binary files a/CppUnitTestApp/res/CppUnitTestApp.ico and /dev/null differ
diff --git a/CppUnitTestApp/res/CppUnitTestApp.rc2 b/CppUnitTestApp/res/CppUnitTestApp.rc2
deleted file mode 100644 (file)
index 370534a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-//\r
-// CPPUNITTESTAPP.RC2 - resources Microsoft Visual C++ does not edit directly\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-       #error this file is not editable by Microsoft Visual C++\r
-#endif //APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// Add manually edited resources here...\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
diff --git a/CppUnitTestApp/test/MemoInfoTest.cpp b/CppUnitTestApp/test/MemoInfoTest.cpp
deleted file mode 100644 (file)
index 5cb52fa..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include <windows.h>\r
-#include <tchar.h>\r
-#include "TString.h"\r
-#include "UniConv.h"\r
-#include "MemoInfo.h"\r
-#include "File.h"\r
-\r
-#define TEST_CLASS_NAME MemoInfoTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(WriteInfoTest1);\r
-       CPPUNIT_TEST(ReadInfoTest1);\r
-       CPPUNIT_TEST(RenameInfoTest1);\r
-       CPPUNIT_TEST(DeleteInfoTest1);\r
-\r
-       CPPUNIT_TEST(WriteInfoTest2);\r
-       CPPUNIT_TEST(ReadInfoTest2);\r
-       CPPUNIT_TEST(RenameInfoTest2);\r
-       CPPUNIT_TEST(DeleteInfoTest2);\r
-\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-       TCHAR path[MAX_PATH];\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp();\r
-       virtual void tearDown() {}\r
-\r
-       void WriteInfoTest1();\r
-       void WriteInfoTest2();\r
-       void ReadInfoTest1();\r
-       void ReadInfoTest2();\r
-       void RenameInfoTest1();\r
-       void RenameInfoTest2();\r
-       void DeleteInfoTest1();\r
-       void DeleteInfoTest2();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-void TEST_CLASS_NAME::setUp()\r
-{\r
-       // get current dir path\r
-       TCHAR buf[MAX_PATH];\r
-       GetModuleFileName(NULL, buf, MAX_PATH);\r
-       GetFilePath(path, buf);\r
-\r
-       wsprintf(buf, TEXT("%s%s"), path, TEXT("sub1"));\r
-       CreateDirectory(buf, NULL);\r
-\r
-       _tcscat(buf, TEXT("\\sub2"));\r
-       CreateDirectory(buf, NULL);\r
-}\r
-\r
-////////////////////////////////////////////////\r
-\r
-// Case: new Info\r
-void TEST_CLASS_NAME::WriteInfoTest1() {\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
-\r
-       DeleteFile(buf);\r
-\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.WriteInfo("aaa", 0x12345678));\r
-\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
-       CPPUNIT_ASSERT(f.FileSize() == 5);\r
-\r
-       BYTE data[20];\r
-       DWORD nSiz = 5;\r
-       CPPUNIT_ASSERT(f.Read(data, &nSiz));\r
-       CPPUNIT_ASSERT(nSiz == 5);\r
-\r
-       CPPUNIT_ASSERT(data[0] == 1);\r
-       CPPUNIT_ASSERT(data[1] == 0x78);\r
-       CPPUNIT_ASSERT(data[2] == 0x56);\r
-       CPPUNIT_ASSERT(data[3] == 0x34);\r
-       CPPUNIT_ASSERT(data[4] == 0x12);\r
-}\r
-\r
-// Case: new Info\r
-void TEST_CLASS_NAME::WriteInfoTest2() {\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
-\r
-       DeleteFile(buf);\r
-\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.WriteInfo("sub1\\sub2\\bbb", 0x12345678));\r
-\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
-       CPPUNIT_ASSERT(f.FileSize() == 5);\r
-\r
-       BYTE data[20];\r
-       DWORD nSiz = 5;\r
-       CPPUNIT_ASSERT(f.Read(data, &nSiz));\r
-       CPPUNIT_ASSERT(nSiz == 5);\r
-\r
-       CPPUNIT_ASSERT(data[0] == 1);\r
-       CPPUNIT_ASSERT(data[1] == 0x78);\r
-       CPPUNIT_ASSERT(data[2] == 0x56);\r
-       CPPUNIT_ASSERT(data[3] == 0x34);\r
-       CPPUNIT_ASSERT(data[4] == 0x12);\r
-}\r
-\r
-void TEST_CLASS_NAME::ReadInfoTest1()\r
-{\r
-       MemoInfo mi(path);\r
-       DWORD n;\r
-\r
-       CPPUNIT_ASSERT(mi.ReadInfo("aaa", &n));\r
-       CPPUNIT_ASSERT(n == 0x12345678);\r
-}\r
-\r
-void TEST_CLASS_NAME::ReadInfoTest2()\r
-{\r
-       MemoInfo mi(path);\r
-       DWORD n;\r
-\r
-       CPPUNIT_ASSERT(mi.ReadInfo("sub1\\sub2\\bbb", &n));\r
-       CPPUNIT_ASSERT(n == 0x12345678);\r
-}\r
-\r
-void TEST_CLASS_NAME::RenameInfoTest1()\r
-{\r
-       TCHAR n0[MAX_PATH];\r
-       TCHAR n1[MAX_PATH];\r
-\r
-       wsprintf(n0, "%s\\aaa", path);\r
-       wsprintf(n1, "%s\\xxx", path);\r
-\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.RenameInfo(n0, n1));\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
-\r
-       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
-       File f2;\r
-       CPPUNIT_ASSERT(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
-       f2.Close();\r
-\r
-       MemoInfo mi2(path);\r
-       DWORD n;\r
-       CPPUNIT_ASSERT(mi2.ReadInfo("xxx", &n));\r
-       CPPUNIT_ASSERT(n == 0x12345678);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::RenameInfoTest2()\r
-{\r
-       TCHAR n0[MAX_PATH];\r
-       TCHAR n1[MAX_PATH];\r
-\r
-       wsprintf(n0, "%s\\%s", path, "sub1\\sub2\\bbb");\r
-       wsprintf(n1, "%s\\%s", path, "sub1\\sub2\\yyy");\r
-\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.RenameInfo(n0, n1));\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
-\r
-       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
-       File f2;\r
-       CPPUNIT_ASSERT(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
-       f2.Close();\r
-\r
-       MemoInfo mi2(path);\r
-       DWORD n;\r
-       CPPUNIT_ASSERT(mi2.ReadInfo("sub1\\sub2\\yyy", &n));\r
-       CPPUNIT_ASSERT(n == 0x12345678);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::DeleteInfoTest1()\r
-{\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.DeleteInfo("xxx"));\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
-}\r
-\r
-void TEST_CLASS_NAME::DeleteInfoTest2()\r
-{\r
-       MemoInfo mi(path);\r
-       CPPUNIT_ASSERT(mi.DeleteInfo("sub1\\sub2\\yyy"));\r
-\r
-       TCHAR buf[MAX_PATH];\r
-       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
-\r
-       File f;\r
-       CPPUNIT_ASSERT(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_FILE_NOT_FOUND);\r
-}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/RegexTest.cpp b/CppUnitTestApp/test/RegexTest.cpp
deleted file mode 100644 (file)
index 23604c1..0000000
+++ /dev/null
@@ -1,460 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-#include <windows.h>\r
-\r
-// These test cases assume default encoding as CP932(SJIS).\r
-\r
-#include "UniConv.h"\r
-\r
-#include "RegexUtil.h"\r
-#ifdef COMMENT\r
-extern "C" {\r
-void* Regex_Compile(const LPBYTE pPattern, BOOL bIgnoreCase, const char **ppReason, DWORD nCodePage);\r
-void Regex_Free(void *p);\r
-int Regex_Search(void *p, int iStart, const LPBYTE pTarget, BOOL bForward, int *pStart, int *pEnd, DWORD nCodePage);\r
-\r
-const LPBYTE ShiftLeft(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
-const LPBYTE ShiftRight(const LPBYTE pString, const LPBYTE pPos, DWORD nCodePage);\r
-\r
-DWORD UnicodePosToMBCSPos(const char *pStr, DWORD n, DWORD nCodePage);\r
-DWORD FileEncPosToUnicodePos(const char *pStr, DWORD n, DWORD nCodePage);\r
-};\r
-#endif\r
-\r
-#define TEST_CLASS_NAME RegexTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-\r
-       CPPUNIT_TEST(RegexTest1);\r
-\r
-       CPPUNIT_TEST(CaseIgnoreTest1);\r
-       CPPUNIT_TEST(CaseIgnoreTest2);\r
-\r
-       CPPUNIT_TEST(NoMatchTest1);\r
-       \r
-       CPPUNIT_TEST(KanjiTest1);\r
-       CPPUNIT_TEST(KanjiTest2);\r
-       CPPUNIT_TEST(KanjiTest3);\r
-       \r
-       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest1);\r
-       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest2);\r
-       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest3);\r
-       CPPUNIT_TEST(ConvUTF8PosToUCSPosTest4);\r
-\r
-       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest1);\r
-       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest2);\r
-       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest3);\r
-       CPPUNIT_TEST(ConvUCSPosToUTF8PosTest4);\r
-\r
-       CPPUNIT_TEST(ShiftRightTest1);\r
-       CPPUNIT_TEST(ShiftRightTest2);\r
-       CPPUNIT_TEST(ShiftRightTest3);\r
-\r
-       CPPUNIT_TEST(ShiftLeftTest1);\r
-       CPPUNIT_TEST(ShiftLeftTest2);\r
-       CPPUNIT_TEST(ShiftLeftTest3);\r
-\r
-       CPPUNIT_TEST(UTF8Test1);\r
-       CPPUNIT_TEST(UTF8Test2);\r
-\r
-       CPPUNIT_TEST(ConvertPosTest1);\r
-       CPPUNIT_TEST(ConvertPosTest2);\r
-       CPPUNIT_TEST(ConvertPosTest3);\r
-       CPPUNIT_TEST(ConvertPosTest4);\r
-       CPPUNIT_TEST(ConvertPosTest5);\r
-       CPPUNIT_TEST(ConvertPosTest6);\r
-\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void RegexTest1();\r
-\r
-       void CaseIgnoreTest1();\r
-       void CaseIgnoreTest2();\r
-\r
-       void NoMatchTest1();\r
-\r
-       void KanjiTest1();\r
-       void KanjiTest2();\r
-       void KanjiTest3();\r
-\r
-       void ConvUTF8PosToUCSPosTest1();\r
-       void ConvUTF8PosToUCSPosTest2();\r
-       void ConvUTF8PosToUCSPosTest3();\r
-       void ConvUTF8PosToUCSPosTest4();\r
-\r
-       void ConvUCSPosToUTF8PosTest1();\r
-       void ConvUCSPosToUTF8PosTest2();\r
-       void ConvUCSPosToUTF8PosTest3();\r
-       void ConvUCSPosToUTF8PosTest4();\r
-\r
-       void ShiftRightTest1();\r
-       void ShiftRightTest2();\r
-       void ShiftRightTest3();\r
-\r
-       void ShiftLeftTest1();\r
-       void ShiftLeftTest2();\r
-       void ShiftLeftTest3();\r
-\r
-       void UTF8Test1();\r
-       void UTF8Test2();\r
-\r
-       void ConvertPosTest1();\r
-       void ConvertPosTest2();\r
-       void ConvertPosTest3();\r
-       void ConvertPosTest4();\r
-       void ConvertPosTest5();\r
-       void ConvertPosTest6();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-\r
-void TEST_CLASS_NAME::RegexTest1() {\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       const char *pString = "aaa bbb pap pat pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 12);\r
-       CPPUNIT_ASSERT(nStart == 12);\r
-       CPPUNIT_ASSERT(nEnd == 15);\r
-}\r
-\r
-void TEST_CLASS_NAME::CaseIgnoreTest1() {\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"PAT", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       const char *pString = "aaa bbb pat PAT pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 12);\r
-       CPPUNIT_ASSERT(nStart == 12);\r
-       CPPUNIT_ASSERT(nEnd == 15);\r
-}\r
-\r
-\r
-void TEST_CLASS_NAME::CaseIgnoreTest2() {\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"PAT", TRUE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       const char *pString = "aaa bbb pat PAT pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 8);\r
-       CPPUNIT_ASSERT(nStart == 8);\r
-       CPPUNIT_ASSERT(nEnd == 11);\r
-}\r
-\r
-void TEST_CLASS_NAME::NoMatchTest1() {\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       const char *pString = "aaa bbb pap pad pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == -1);\r
-}\r
-\r
-void TEST_CLASS_NAME::KanjiTest1() {\r
-\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"\8a¿\8e\9a", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       char *pString = "aaa \8a¿\8e\9a pap pad pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 4);\r
-       CPPUNIT_ASSERT(nStart == 4);\r
-       CPPUNIT_ASSERT(nEnd == 8);\r
-}\r
-\r
-void TEST_CLASS_NAME::KanjiTest2() {\r
-\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"\8a¿+\8e\9a", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       char *pString = "a\8a¿\8a¿\8e\9a pap pad pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 1);\r
-       CPPUNIT_ASSERT(nStart == 1);\r
-       CPPUNIT_ASSERT(nEnd==7);\r
-}\r
-\r
-void TEST_CLASS_NAME::KanjiTest3() {\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile((LPBYTE)"[\8a¿\8e\9a]+", FALSE, &pReason, 0);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       char *pString = "\83e\83X\83ga\8a¿\8a¿\8e\9a\8e\9a\8a¿\8e\9a pap pad pas";\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 7);\r
-       CPPUNIT_ASSERT(nStart == 7);\r
-       CPPUNIT_ASSERT(nEnd==19);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest1() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("abcdefg"));\r
-       DWORD n = ConvUTF8PosToUCSPos(pUTF, 3);\r
-       CPPUNIT_ASSERT(n == 3);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest2() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Ó\83Æcdefg"));\r
-       DWORD n = ConvUTF8PosToUCSPos(pUTF, 6);\r
-       CPPUNIT_ASSERT(n == 4);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest3() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-       DWORD n = ConvUTF8PosToUCSPos(pUTF, 10);\r
-       CPPUNIT_ASSERT(n == 6);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUTF8PosToUCSPosTest4() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-       DWORD n = ConvUTF8PosToUCSPos(pUTF, 18);\r
-       CPPUNIT_ASSERT(n == 12);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest1() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("abcdefg"));\r
-       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 3);\r
-       CPPUNIT_ASSERT(n == 3);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest2() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Ó\83Æcdefg"));\r
-       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 4);\r
-       CPPUNIT_ASSERT(n == 6);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest3() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 6);\r
-       CPPUNIT_ASSERT(n == 10);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCSPosToUTF8PosTest4() {\r
-       char *pUTF = ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 12);\r
-       CPPUNIT_ASSERT(n == 18);\r
-}\r
-\r
-// Shift right SJIS\r
-void TEST_CLASS_NAME::ShiftRightTest1() {\r
-       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
-       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 3, 0);\r
-       CPPUNIT_ASSERT(p1 == p0 + 5);\r
-       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p1, 0);\r
-       CPPUNIT_ASSERT(p2 == p0 + 7);\r
-       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p2, 0);\r
-       CPPUNIT_ASSERT(p3 == p0 + 8);\r
-\r
-}\r
-\r
-// Shift right UTF-8\r
-void TEST_CLASS_NAME::ShiftRightTest2() {\r
-       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-\r
-       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 65001);\r
-       CPPUNIT_ASSERT(p1 == p0 + 2);\r
-\r
-       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 65001);\r
-       CPPUNIT_ASSERT(p2 == p0 + 4);\r
-\r
-       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 65001);\r
-       CPPUNIT_ASSERT(p3 == p0 + 9);\r
-}\r
-\r
-// Shift right UTF-16\r
-void TEST_CLASS_NAME::ShiftRightTest3() {\r
-       LPBYTE p0 = (LPBYTE)_L("ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
-\r
-       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 1200);\r
-       CPPUNIT_ASSERT(p1 == p0 + 2);\r
-\r
-       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 1200);\r
-       CPPUNIT_ASSERT(p2 == p0 + 4);\r
-\r
-       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 1200);\r
-       CPPUNIT_ASSERT(p3 == p0 + 8);\r
-}\r
-\r
-// Shift left SJIS\r
-void TEST_CLASS_NAME::ShiftLeftTest1() {\r
-       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
-\r
-       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 5, 0);\r
-       CPPUNIT_ASSERT(p1 == p0 + 3);\r
-\r
-       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 3, 0);\r
-       CPPUNIT_ASSERT(p2 == p0 + 2);\r
-}\r
-\r
-// Shift left UTF-8\r
-void TEST_CLASS_NAME::ShiftLeftTest2() {\r
-       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿a\8e\9acdefg"));\r
-\r
-       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 65001);\r
-       CPPUNIT_ASSERT(p1 == p0 + 6);\r
-\r
-       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 65001);\r
-       CPPUNIT_ASSERT(p2 == p0 + 4);\r
-\r
-       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 65001);\r
-       CPPUNIT_ASSERT(p3 == p0 + 1);\r
-\r
-}\r
-\r
-// Shift left UTF-8\r
-void TEST_CLASS_NAME::ShiftLeftTest3() {\r
-       LPBYTE p0 = (LPBYTE)_L("ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
-\r
-       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 1200);\r
-       CPPUNIT_ASSERT(p1 == p0 + 8);\r
-\r
-       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 1200);\r
-       CPPUNIT_ASSERT(p2 == p0 + 4);\r
-\r
-       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 1200);\r
-       CPPUNIT_ASSERT(p3 == p0 + 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::UTF8Test1() {\r
-\r
-       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿\8e\9a"));\r
-\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿\8e\9acdefg"));\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 6);\r
-       CPPUNIT_ASSERT(nStart == 6);\r
-       CPPUNIT_ASSERT(nEnd == 12);\r
-}\r
-\r
-void TEST_CLASS_NAME::UTF8Test2() {\r
-\r
-       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(_L("b\83Î"));\r
-\r
-       const char *pReason;\r
-       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
-       CPPUNIT_ASSERT(pPat != NULL);\r
-\r
-       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(_L("ab\83Î\83Æ\8a¿\8e\9acdefg"));\r
-\r
-       int nStart, nEnd;\r
-\r
-       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
-\r
-       CPPUNIT_ASSERT(n == 1);\r
-       CPPUNIT_ASSERT(nStart == 1);\r
-       CPPUNIT_ASSERT(nEnd == 4);\r
-}\r
-\r
-\r
-// UTF-8 -> Native(zero position)\r
-void TEST_CLASS_NAME::ConvertPosTest1() {\r
-       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
-       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
-\r
-       DWORD n = ConvertPos(pSrc, 0, 65001, pDst, 0);\r
-       \r
-       CPPUNIT_ASSERT(n == 0);\r
-\r
-}\r
-\r
-// UTF-8 -> Native\r
-void TEST_CLASS_NAME::ConvertPosTest2() {\r
-       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
-       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
-\r
-       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 0);\r
-       CPPUNIT_ASSERT(n == 6);\r
-\r
-}\r
-\r
-// UTF-8 -> UCS2\r
-void TEST_CLASS_NAME::ConvertPosTest3() {\r
-       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
-       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
-\r
-       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 1200);\r
-       // notice result is byte position, so not 4\r
-       CPPUNIT_ASSERT(n == 8);\r
-}\r
-\r
-// Native -> UTF-8\r
-void TEST_CLASS_NAME::ConvertPosTest4() {\r
-       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
-       LPBYTE pDst = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
-\r
-       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 65001);\r
-       CPPUNIT_ASSERT(n == 7);\r
-}\r
-\r
-// Native -> UCS2\r
-void TEST_CLASS_NAME::ConvertPosTest5() {\r
-       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
-       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
-\r
-       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 1200);\r
-       CPPUNIT_ASSERT(n == 8);\r
-}\r
-\r
-// UTF-8 -> Native\r
-void TEST_CLASS_NAME::ConvertPosTest6() {\r
-       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(_L("\8a¿ab\83Ó\8e\9a"));\r
-       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
-\r
-       DWORD n = ConvertPos(pSrc, 10, 65001, pDst, 0);\r
-       CPPUNIT_ASSERT(n == 8);\r
-\r
-}\r
diff --git a/CppUnitTestApp/test/SharedStringTest.cpp b/CppUnitTestApp/test/SharedStringTest.cpp
deleted file mode 100644 (file)
index 6a89c20..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include <windows.h>\r
-#include <tchar.h>\r
-#include "TString.h"\r
-\r
-#define TEST_CLASS_NAME SharedStringTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(InitTest1);\r
-       CPPUNIT_TEST(InitTest2);\r
-       CPPUNIT_TEST(InitTest3);\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void InitTest1();\r
-       void InitTest2();\r
-       void InitTest3();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-void TEST_CLASS_NAME::InitTest1() {\r
-       SharedString ss;\r
-\r
-       CPPUNIT_ASSERT(ss.Init("TEST"));\r
-       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest2() {\r
-       SharedString ss;\r
-\r
-       CPPUNIT_ASSERT(ss.Init("TEST"));\r
-       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
-\r
-       SharedString ss2(ss);\r
-       CPPUNIT_ASSERT(strcmp(ss2.Get(), "TEST") == 0);\r
-       CPPUNIT_ASSERT(ss.Get() == ss2.Get());\r
-       CPPUNIT_ASSERT(ss2.pBuf->nRefCount == 2);\r
-\r
-       SharedString ss3;\r
-       CPPUNIT_ASSERT(ss3.Init(ss2));\r
-       CPPUNIT_ASSERT(strcmp(ss3.Get(), "TEST") == 0);\r
-       CPPUNIT_ASSERT(ss3.Get() == ss.Get());\r
-       CPPUNIT_ASSERT(ss3.pBuf->nRefCount == 3);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest3() {\r
-       SharedString ss;\r
-       CPPUNIT_ASSERT(ss.Init("TEST"));\r
-       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
-\r
-       {\r
-               SharedString ss2(ss);\r
-               CPPUNIT_ASSERT(strcmp(ss2.Get(), "TEST") == 0);\r
-               CPPUNIT_ASSERT(ss.Get() == ss2.Get());\r
-               CPPUNIT_ASSERT(ss2.pBuf->nRefCount == 2);\r
-       }\r
-\r
-       CPPUNIT_ASSERT(strcmp(ss.Get(), "TEST") == 0);\r
-       CPPUNIT_ASSERT(ss.pBuf->nRefCount == 1);\r
-}\r
diff --git a/CppUnitTestApp/test/TomboURITest.cpp b/CppUnitTestApp/test/TomboURITest.cpp
deleted file mode 100644 (file)
index 2d46ed0..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include <windows.h>\r
-#include <tchar.h>\r
-#include "TString.h"\r
-#include "TomboURI.h"\r
-\r
-#define TEST_CLASS_NAME TomboURITest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(InitTest1);\r
-       CPPUNIT_TEST(InitTest2);\r
-       CPPUNIT_TEST(InitTest3);\r
-       CPPUNIT_TEST(InitTest4);\r
-       CPPUNIT_TEST(InitTest5);\r
-       CPPUNIT_TEST(InitTest6);\r
-       CPPUNIT_TEST(InitTest7);\r
-       CPPUNIT_TEST(GetRepoTest1);\r
-       CPPUNIT_TEST(IteratorTest1);\r
-       CPPUNIT_TEST(IteratorTest2);\r
-       CPPUNIT_TEST(IteratorTest3);\r
-       CPPUNIT_TEST(GetParentTest1);\r
-       CPPUNIT_TEST(GetParentTest2);\r
-       CPPUNIT_TEST(GetParentTest3);\r
-       CPPUNIT_TEST(GetParentTest4);\r
-       CPPUNIT_TEST(GetParentTest5);\r
-       CPPUNIT_TEST(GetParentTest6);\r
-       CPPUNIT_TEST(IsLeafTest1);\r
-       CPPUNIT_TEST(IsLeafTest2);\r
-       CPPUNIT_TEST(IsLeafTest3);\r
-       CPPUNIT_TEST(GetFilePathTest1);\r
-       CPPUNIT_TEST(GetFilePathTest2);\r
-       CPPUNIT_TEST(GetFilePathTest3);\r
-       CPPUNIT_TEST(GetBaseNameTest1);\r
-       CPPUNIT_TEST(GetBaseNameTest2);\r
-       CPPUNIT_TEST(GetBaseNameTest3);\r
-       CPPUNIT_TEST(IsRootTest1);\r
-       CPPUNIT_TEST(IsRootTest2);\r
-       CPPUNIT_TEST(IsRootTest3);\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void InitTest1();\r
-       void InitTest2();\r
-       void InitTest3();\r
-       void InitTest4();\r
-       void InitTest5();\r
-       void InitTest6();\r
-       void InitTest7();\r
-       void GetRepoTest1();\r
-       void IteratorTest1();\r
-       void IteratorTest2();\r
-       void IteratorTest3();\r
-       void GetParentTest1();\r
-       void GetParentTest2();\r
-       void GetParentTest3();\r
-       void GetParentTest4();\r
-       void GetParentTest5();\r
-       void GetParentTest6();\r
-       void IsLeafTest1();\r
-       void IsLeafTest2();\r
-       void IsLeafTest3();\r
-       void GetFilePathTest1();\r
-       void GetFilePathTest2();\r
-       void GetFilePathTest3();\r
-       void GetBaseNameTest1();\r
-       void GetBaseNameTest2();\r
-       void GetBaseNameTest3();\r
-       void IsRootTest1();\r
-       void IsRootTest2();\r
-       void IsRootTest3();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-void TEST_CLASS_NAME::InitTest1() {\r
-       // no header information. fail.\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("test");\r
-       CPPUNIT_ASSERT(!b);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_INVALID_DATA);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest2() {\r
-       // incomplete repository definition. fail.\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("tombo://default");\r
-       CPPUNIT_ASSERT(!b);\r
-       CPPUNIT_ASSERT(GetLastError() == ERROR_INVALID_DATA);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest3() {\r
-       // directs root of default repository.\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("tombo://default/");\r
-       CPPUNIT_ASSERT(b);\r
-       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest4() {\r
-       // exists first item (no path sep)\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("tombo://default/hello");\r
-       CPPUNIT_ASSERT(b);\r
-       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest5() {\r
-       // exists first item (with path sep)\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("tombo://default/hello/");\r
-       CPPUNIT_ASSERT(b);\r
-       CPPUNIT_ASSERT(uri.nMaxPathItem == 7);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest6() {\r
-\r
-       TomboURI uri;\r
-       BOOL b = uri.Init("tombo://default/hello world");\r
-       CPPUNIT_ASSERT(b);\r
-       CPPUNIT_ASSERT(uri.nMaxPathItem == 11);\r
-}\r
-\r
-void TEST_CLASS_NAME::InitTest7() {\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/test.txt"));\r
-\r
-       TomboURI uri2(uri);\r
-       CPPUNIT_ASSERT(uri.GetFullURI() == uri2.GetFullURI());\r
-\r
-       TomboURI uri3;\r
-       uri3.Init(uri);\r
-       CPPUNIT_ASSERT(uri.GetFullURI() == uri2.GetFullURI());\r
-}\r
-\r
-void TEST_CLASS_NAME::GetRepoTest1() {\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-       \r
-       TString repo;\r
-       BOOL b = uri.GetRepositoryName(&repo);\r
-       CPPUNIT_ASSERT(b);\r
-       CPPUNIT_ASSERT(strcmp(repo.Get(), "default") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::IteratorTest1() {\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-\r
-       TomboURIItemIterator itr(&uri);\r
-       CPPUNIT_ASSERT(itr.Init());\r
-       LPCTSTR p;\r
-       itr.First();\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(p == NULL);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
-}\r
-\r
-void TEST_CLASS_NAME::IteratorTest2() {\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc.txt"));\r
-\r
-       TomboURIItemIterator itr(&uri);\r
-       CPPUNIT_ASSERT(itr.Init());\r
-       LPCTSTR p;\r
-       itr.First();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(strcmp(p, "aaa") == 0);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
-       itr.Next();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(strcmp(p, "bbb") == 0);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
-       itr.Next();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(strcmp(p, "ccc.txt") == 0);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == TRUE);\r
-       itr.Next();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(p == NULL);\r
-\r
-       itr.Next();\r
-       CPPUNIT_ASSERT(p == NULL);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::IteratorTest3() {\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/"));\r
-\r
-       TomboURIItemIterator itr(&uri);\r
-       CPPUNIT_ASSERT(itr.Init());\r
-       LPCTSTR p;\r
-       itr.First();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(strcmp(p, "aaa") == 0);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
-       itr.Next();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(strcmp(p, "bbb") == 0);\r
-       CPPUNIT_ASSERT(itr.IsLeaf() == FALSE);\r
-       itr.Next();\r
-\r
-       p = itr.Current();\r
-       CPPUNIT_ASSERT(p == NULL);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest1()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/ddd.txt"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/ccc/") == 0);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest2()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest3()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest4()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest5()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa.txt"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetParentTest6()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/ddd.txt"));\r
-       TomboURI sParent;\r
-       CPPUNIT_ASSERT(uri.GetParent(&sParent));\r
-\r
-       CPPUNIT_ASSERT(strcmp(sParent.GetFullURI(), "tombo://default/aaa/") == 0);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::IsLeafTest1()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-       CPPUNIT_ASSERT(uri.IsLeaf() == FALSE);\r
-}\r
-\r
-void TEST_CLASS_NAME::IsLeafTest2()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/"));\r
-       CPPUNIT_ASSERT(uri.IsLeaf() == FALSE);\r
-}\r
-\r
-void TEST_CLASS_NAME::IsLeafTest3()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa"));\r
-       CPPUNIT_ASSERT(uri.IsLeaf() == TRUE);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetFilePathTest1()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-\r
-       TString sPath;\r
-       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
-       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("")));\r
-}\r
-\r
-void TEST_CLASS_NAME::GetFilePathTest2()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa"));\r
-\r
-       TString sPath;\r
-       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
-       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("aaa")));\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::GetFilePathTest3()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
-\r
-       TString sPath;\r
-       CPPUNIT_ASSERT(uri.GetFilePath(&sPath));\r
-       CPPUNIT_ASSERT(_tcscpy(sPath.Get(), TEXT("aaa\\bbb\\ccc\\")));\r
-}\r
-\r
-void TEST_CLASS_NAME::GetBaseNameTest1()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/dd.txt"));\r
-\r
-       TString sBase;\r
-       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
-       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("dd.txt")) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetBaseNameTest2()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
-\r
-       TString sBase;\r
-       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
-       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("ccc")) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::GetBaseNameTest3()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-\r
-       TString sBase;\r
-       CPPUNIT_ASSERT(uri.GetBaseName(&sBase));\r
-       CPPUNIT_ASSERT(_tcscmp(sBase.Get(), TEXT("")) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::IsRootTest1()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/"));\r
-       CPPUNIT_ASSERT(uri.IsRoot() == TRUE);\r
-}\r
-\r
-void TEST_CLASS_NAME::IsRootTest2()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://default/aaa.txt"));\r
-       CPPUNIT_ASSERT(uri.IsRoot() == FALSE);\r
-}\r
-\r
-void TEST_CLASS_NAME::IsRootTest3()\r
-{\r
-       TomboURI uri;\r
-       CPPUNIT_ASSERT(uri.Init("tombo://repo/"));\r
-       CPPUNIT_ASSERT(uri.IsRoot() == TRUE);\r
-}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/UniConvTest.cpp b/CppUnitTestApp/test/UniConvTest.cpp
deleted file mode 100644 (file)
index ecfd2fe..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include <windows.h>\r
-#include "UniConv.h"\r
-\r
-#define TEST_CLASS_NAME UniConvTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(Base64EncodeTest1);\r
-       CPPUNIT_TEST(Base64EncodeTest2);\r
-       CPPUNIT_TEST(Base64EncodeTest3);\r
-       CPPUNIT_TEST(Base64EncodeTest4_1);\r
-       CPPUNIT_TEST(Base64EncodeTest4_2);\r
-       CPPUNIT_TEST(Base64EncodeTest4_3);\r
-       CPPUNIT_TEST(Base64EncodeTest4_4);\r
-       CPPUNIT_TEST(Base64EncodeTest4_5);\r
-       CPPUNIT_TEST(Base64EncodeTest4_6);\r
-       CPPUNIT_TEST(Base64EncodeTest4_7);\r
-\r
-       CPPUNIT_TEST(Base64DecodeTest1);\r
-       CPPUNIT_TEST(Base64DecodeTest2);\r
-\r
-       CPPUNIT_TEST(ConvUTF8ToUCS2Test1);\r
-       CPPUNIT_TEST(ConvUTF8ToUCS2Test2);\r
-       CPPUNIT_TEST(ConvUTF8ToUCS2Test3);\r
-\r
-       CPPUNIT_TEST(ConvUCS2ToUTF8Test1);\r
-       CPPUNIT_TEST(ConvUCS2ToUTF8Test2);\r
-       CPPUNIT_TEST(ConvUCS2ToUTF8Test3);\r
-\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void Base64EncodeTest1();\r
-       void Base64EncodeTest2();\r
-       void Base64EncodeTest3();\r
-       void Base64EncodeTest4_1();\r
-       void Base64EncodeTest4_2();\r
-       void Base64EncodeTest4_3();\r
-       void Base64EncodeTest4_4();\r
-       void Base64EncodeTest4_5();\r
-       void Base64EncodeTest4_6();\r
-       void Base64EncodeTest4_7();\r
-\r
-       void Base64DecodeTest1();\r
-       void Base64DecodeTest2();\r
-\r
-       void ConvUTF8ToUCS2Test1();\r
-       void ConvUTF8ToUCS2Test2();\r
-       void ConvUTF8ToUCS2Test3();\r
-\r
-       void ConvUCS2ToUTF8Test1();\r
-       void ConvUCS2ToUTF8Test2();\r
-       void ConvUCS2ToUTF8Test3();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-// test probe\r
-extern DWORD g_Base64EncodeAllocSize;\r
-\r
-////////////////////////////////////////////////\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest1() {\r
-       char *pOut = Base64Encode((LPBYTE)"Hello", 5);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
-       CPPUNIT_ASSERT(strcmp("SGVsbG8=", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest2() {\r
-       char *pOut = Base64Encode(NULL, 5);\r
-       CPPUNIT_ASSERT(pOut == NULL);\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest3() {\r
-       char *pOut = Base64Encode((LPBYTE)"Hello", 0);\r
-       CPPUNIT_ASSERT(pOut == NULL);\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_1()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 1);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
-       CPPUNIT_ASSERT(strcmp("SA==", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_2()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 2);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
-       CPPUNIT_ASSERT(strcmp("SGU=", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_3()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 3);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 5);\r
-       CPPUNIT_ASSERT(strcmp("SGVs", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_4()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 4);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
-       CPPUNIT_ASSERT(strcmp("SGVsbA==", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_5()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 5);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
-       CPPUNIT_ASSERT(strcmp("SGVsbG8=", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_6()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello ", 6);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 9);\r
-       CPPUNIT_ASSERT(strcmp("SGVsbG8g", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64EncodeTest4_7()\r
-{\r
-       char *pOut = Base64Encode((LPBYTE)"Hello w", 7);\r
-\r
-       CPPUNIT_ASSERT(g_Base64EncodeAllocSize == 13);\r
-       CPPUNIT_ASSERT(strcmp("SGVsbG8gdw==", pOut) == 0);\r
-       delete [] pOut;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64DecodeTest1()\r
-{\r
-       DWORD n;\r
-       LPBYTE p = Base64Decode("SGVsbG8=", &n);\r
-       CPPUNIT_ASSERT(n == 5);\r
-       CPPUNIT_ASSERT(strncmp((char*)p, "Hello", 5) == 0);\r
-       delete [] p;\r
-}\r
-\r
-void TEST_CLASS_NAME::Base64DecodeTest2()\r
-{\r
-       DWORD n;\r
-       LPBYTE p = Base64Decode("SGVsbG8", &n);\r
-       CPPUNIT_ASSERT(p == NULL);\r
-}\r
-\r
-// UTF-8 1 byte conversion\r
-void TEST_CLASS_NAME::ConvUTF8ToUCS2Test1()\r
-{\r
-       char aInput[] = { 0x54, 0x45, 0x53, 0x54, 0x00};        // "TEST"\r
-       WCHAR aExpect[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};\r
-\r
-       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
-       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
-}\r
-\r
-// UTF-8 2 byte conversion\r
-void TEST_CLASS_NAME::ConvUTF8ToUCS2Test2()\r
-{\r
-       char aInput[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};        //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
-       WCHAR aExpect[] = {0x03b8, 0x03c0, 0x0000};\r
-\r
-       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
-       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
-}\r
-\r
-// UTF-8 3 byte conversion\r
-void TEST_CLASS_NAME::ConvUTF8ToUCS2Test3()\r
-{\r
-       char aInput[] = {       (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
-                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
-                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
-                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
-       WCHAR aExpect[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
-\r
-       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
-       CPPUNIT_ASSERT(wcscmp(aExpect, pResult) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCS2ToUTF8Test1()\r
-{\r
-       WCHAR aInput[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};      // "TEST"\r
-       char aExpect[] = { 0x54, 0x45, 0x53, 0x54, 0x00};\r
-\r
-       char *pResult = ConvUCS2ToUTF8(aInput);\r
-       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCS2ToUTF8Test2()\r
-{\r
-       WCHAR aInput[] = {0x03b8, 0x03c0, 0x0000};\r
-       char aExpect[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};       //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
-\r
-       char *pResult = ConvUCS2ToUTF8(aInput);\r
-       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvUCS2ToUTF8Test3()\r
-{\r
-       WCHAR aInput[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
-       char aExpect[] = {      (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
-                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
-                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
-                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
-\r
-       char *pResult = ConvUCS2ToUTF8(aInput);\r
-       CPPUNIT_ASSERT(strcmp(aExpect, pResult) == 0);\r
-}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/VarBufferTest.cpp b/CppUnitTestApp/test/VarBufferTest.cpp
deleted file mode 100644 (file)
index 437bd54..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include <windows.h>\r
-#include "VarBuffer.h"\r
-\r
-class VarBufferTest : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(VarBufferTest);\r
-       CPPUNIT_TEST(VarBufferImplTest1);\r
-       CPPUNIT_TEST(VarBufferImplTest2);\r
-       CPPUNIT_TEST(VarBufferImplTest3);\r
-       CPPUNIT_TEST(VarBufferImplTest4);\r
-       CPPUNIT_TEST(VarBufferImplTest5);\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       VarBufferTest() {}\r
-       ~VarBufferTest() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void VarBufferImplTest1();\r
-       void VarBufferImplTest2();\r
-       void VarBufferImplTest3();\r
-       void VarBufferImplTest4();\r
-       void VarBufferImplTest5();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(VarBufferTest);\r
-\r
-void VarBufferTest::VarBufferImplTest1()\r
-{\r
-       VarBufferImpl vb;\r
-       DWORD nc;\r
-\r
-       CPPUNIT_ASSERT(vb.Init(10, 10));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
-\r
-       // initial data. not extended\r
-       char buf[20];\r
-       strcpy(buf, "0123456789abcdef");\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)buf, 5, NULL));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 5);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "01234", 5) == 0);\r
-\r
-       // append data\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)(buf + 5), 4, &nc));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 9);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "012345678", 9) == 0);\r
-       CPPUNIT_ASSERT(nc == 5);\r
-\r
-       // append data exntend memory\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)(buf + 9), 1, &nc));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 20);\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 10);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), "0123456789", 10) == 0);\r
-       CPPUNIT_ASSERT(nc == 9);\r
-\r
-}\r
-\r
-void VarBufferTest::VarBufferImplTest2()\r
-{\r
-       VarBufferImpl vb;\r
-\r
-       CPPUNIT_ASSERT(vb.Init(5, 5));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 5);\r
-\r
-       // extend multi blocks\r
-       char buf[30];\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)buf, 19, NULL));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 20);\r
-       CPPUNIT_ASSERT(vb.nCurrentUse = 19);\r
-}\r
-\r
-void VarBufferTest::VarBufferImplTest3()\r
-{\r
-       ////////\r
-       // clear test\r
-\r
-       char buf[30];\r
-\r
-       VarBufferImpl vb1;\r
-       CPPUNIT_ASSERT(vb1.Init(5, 5));\r
-       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 5);\r
-\r
-       CPPUNIT_ASSERT(vb1.Add((LPBYTE)buf, 20, NULL));\r
-       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 25);\r
-       CPPUNIT_ASSERT(vb1.nCurrentUse = 20);\r
-\r
-       // clear but keep buffer\r
-       CPPUNIT_ASSERT(vb1.Clear(FALSE));\r
-       CPPUNIT_ASSERT(vb1.nCurrentUse == 0);\r
-       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 25);\r
-\r
-       // clear and realloc buffer\r
-       CPPUNIT_ASSERT(vb1.Clear(TRUE));\r
-       CPPUNIT_ASSERT(vb1.nCurrentUse == 0);\r
-       CPPUNIT_ASSERT(LocalSize(vb1.pBuf) == 5);\r
-\r
-}\r
-\r
-void VarBufferTest::VarBufferImplTest4()\r
-{\r
-       // extend test\r
-       const char *pSample = "0123456789abcdef";\r
-\r
-       VarBufferImpl vb;\r
-       CPPUNIT_ASSERT(vb.Init(10, 5));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)pSample, 5, NULL));\r
-\r
-       CPPUNIT_ASSERT(vb.Extend(0, 2));\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 2, "012345678", 5) == 0);\r
-\r
-       CPPUNIT_ASSERT(vb.Extend(7, 2));\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 9);\r
-\r
-       CPPUNIT_ASSERT(vb.Extend(4, 2));\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 11);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 2, "012", 3) == 0);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer() + 7, "345", 2) == 0);\r
-}\r
-\r
-void VarBufferTest::VarBufferImplTest5()\r
-{\r
-       // shorten test\r
-       const char *pSample = "0123456789abcdef";\r
-       VarBufferImpl vb;\r
-\r
-       CPPUNIT_ASSERT(vb.Init(10, 5));\r
-       CPPUNIT_ASSERT(LocalSize(vb.pBuf) == 10);\r
-       CPPUNIT_ASSERT(vb.Add((LPBYTE)pSample, 9, NULL));\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample, 9) == 0);\r
-\r
-       CPPUNIT_ASSERT(vb.Shorten(0, 2));\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 7);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample + 2, 7) == 0);\r
-\r
-       CPPUNIT_ASSERT(vb.Shorten(5, 2));\r
-       CPPUNIT_ASSERT(vb.nCurrentUse == 5);\r
-       CPPUNIT_ASSERT(strncmp((const char*)vb.GetBuffer(), pSample + 2, 5) == 0);\r
-\r
-}
\ No newline at end of file
diff --git a/CppUnitTestApp/test/XXXTest.cpp b/CppUnitTestApp/test/XXXTest.cpp
deleted file mode 100644 (file)
index 8d9f57c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#define TEST_CLASS_NAME XXXTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(dummyTest);\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void dummyTest();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-void TEST_CLASS_NAME::dummyTest() {\r
-       CPPUNIT_ASSERT(1);\r
-}\r
diff --git a/CppUnitTestApp/test/YAEditDocTest.cpp b/CppUnitTestApp/test/YAEditDocTest.cpp
deleted file mode 100644 (file)
index 98aa4ae..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-#include <windows.h>\r
-#include <tchar.h>\r
-\r
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
-\r
-#include "VarBuffer.h"\r
-#include "Region.h"\r
-#include "YAEditDoc.h"\r
-#include "PhysicalLineManager.h"\r
-#include "MemManager.h"\r
-\r
-#define TEST_CLASS_NAME YAEditDocTest\r
-\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(LoadTest1);\r
-       CPPUNIT_TEST(LoadTest2);\r
-       CPPUNIT_TEST(LoadTest3);\r
-       CPPUNIT_TEST(LoadTest4);\r
-       CPPUNIT_TEST(LoadTest5);\r
-       CPPUNIT_TEST(LoadTest6);\r
-       CPPUNIT_TEST(LoadTest7);\r
-       CPPUNIT_TEST(LoadTest8);\r
-\r
-       CPPUNIT_TEST(ConvertBytesToCoordinateTest1);\r
-       CPPUNIT_TEST(ConvertBytesToCoordinateTest2);\r
-\r
-       CPPUNIT_TEST(UndoTest1);\r
-       CPPUNIT_TEST(UndoTest2);\r
-       CPPUNIT_TEST(UndoTest3);\r
-\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void LoadTest1();\r
-       void LoadTest2();\r
-       void LoadTest3();\r
-       void LoadTest4();\r
-       void LoadTest5();\r
-       void LoadTest6();\r
-       void LoadTest7();\r
-       void LoadTest8();\r
-\r
-       void ConvertBytesToCoordinateTest1();\r
-       void ConvertBytesToCoordinateTest2();\r
-\r
-       void UndoTest1();\r
-       void UndoTest2();\r
-       void UndoTest3();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-// empty string\r
-void TEST_CLASS_NAME::LoadTest1() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT(""), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 1);\r
-       LineInfo *pLi = pLM->GetLineInfo(0);\r
-\r
-       CPPUNIT_ASSERT(pLi->pLine->nUsed == 0);\r
-}\r
-\r
-// 1 line string without CRLF\r
-void TEST_CLASS_NAME::LoadTest2() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("Hello world"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 1);\r
-       LineInfo *pLi = pLM->GetLineInfo(0);\r
-\r
-       CPPUNIT_ASSERT(pLi->pLine->nUsed == 11);\r
-}\r
-\r
-// 2 line string\r
-void TEST_CLASS_NAME::LoadTest3() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("Hellow\r\nworld"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 6);\r
-\r
-       LPCTSTR p0 = pLM->GetLine(0);\r
-       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("Hellow"), 6) == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 5);\r
-       LPCTSTR p1 = pLM->GetLine(1);\r
-       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("world"), 5) == 0);    \r
-}\r
-\r
-// 2 line string end with CRLF\r
-void TEST_CLASS_NAME::LoadTest4() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("Hello\r\n"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
-\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 5);\r
-\r
-       LPCTSTR p0 = pLM->GetLine(0);\r
-       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("Hello"), 5) == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
-}\r
-\r
-// 2 line string start with CRLF\r
-void TEST_CLASS_NAME::LoadTest5() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("\r\nHello"), NULL, NULL);\r
-\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 2);\r
-\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 5);\r
-\r
-       LPCTSTR p1 = pLM->GetLine(1);\r
-       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("Hello"), 5) == 0);\r
-\r
-}\r
-\r
-// CRLF\r
-// CRLF\r
-// CRLF\r
-// EOF\r
-void TEST_CLASS_NAME::LoadTest6() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("\r\n\r\n\r\n"), NULL, NULL);\r
-\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 4);\r
-\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
-       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
-       CPPUNIT_ASSERT(pLi3->pLine->nUsed == 0);\r
-\r
-}\r
-\r
-// CRLF\r
-// CRLF\r
-// abcCRLF\r
-// CRLF\r
-// CRLF\r
-// EOF\r
-void TEST_CLASS_NAME::LoadTest7() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("\r\n\r\nabc\r\n\r\n\r\n"), NULL, NULL);\r
-\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 6);\r
-\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
-       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 3);\r
-       LPCTSTR p2 = pLM->GetLine(2);\r
-       CPPUNIT_ASSERT(_tcsncmp(p2, TEXT("abc"), 3) == 0);\r
-\r
-\r
-       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
-       CPPUNIT_ASSERT(pLi3->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi4 = pLM->GetLineInfo(4);\r
-       CPPUNIT_ASSERT(pLi4->pLine->nUsed == 0);\r
-\r
-       LineInfo *pLi5 = pLM->GetLineInfo(5);\r
-       CPPUNIT_ASSERT(pLi5->pLine->nUsed == 0);\r
-\r
-}\r
-\r
-// abcCRLF\r
-// defCRLF\r
-// ghi[EOF]\r
-void TEST_CLASS_NAME::LoadTest8() {\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("abc\r\ndef\r\nghi"), NULL, NULL);\r
-\r
-       CPPUNIT_ASSERT(bResult);\r
-       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
-\r
-       CPPUNIT_ASSERT(pLM->MaxLine() == 3);\r
-\r
-       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
-       CPPUNIT_ASSERT(pLi0->pLine->nUsed == 3);\r
-       LPCTSTR p0 = pLM->GetLine(0);\r
-       CPPUNIT_ASSERT(_tcsncmp(p0, TEXT("abc"), 3) == 0);\r
-\r
-       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
-       CPPUNIT_ASSERT(pLi1->pLine->nUsed == 3);\r
-       LPCTSTR p1 = pLM->GetLine(1);\r
-       CPPUNIT_ASSERT(_tcsncmp(p1, TEXT("def"), 3) == 0);\r
-\r
-       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
-       CPPUNIT_ASSERT(pLi2->pLine->nUsed == 3);\r
-       LPCTSTR p2 = pLM->GetLine(2);\r
-       CPPUNIT_ASSERT(_tcsncmp(p2, TEXT("ghi"), 3) == 0);\r
-}\r
-\r
-// abcCRLF\r
-// defgCRLF\r
-// hijklEOF\r
-void TEST_CLASS_NAME::ConvertBytesToCoordinateTest1()\r
-{\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-       BOOL bResult = pDoc->Init(TEXT("abc\r\ndefg\r\nhijkl"), NULL, NULL);\r
-\r
-       Coordinate pos;\r
-       pDoc->ConvertBytesToCoordinate(0, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 0 && pos.col == 0);\r
-\r
-       pDoc->ConvertBytesToCoordinate(2, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 0 && pos.col == 2);\r
-\r
-       pDoc->ConvertBytesToCoordinate(5, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 0);\r
-\r
-       pDoc->ConvertBytesToCoordinate(6, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 1);\r
-\r
-       pDoc->ConvertBytesToCoordinate(9, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 4);\r
-\r
-       pDoc->ConvertBytesToCoordinate(11, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 0);\r
-\r
-       pDoc->ConvertBytesToCoordinate(16, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 5);\r
-\r
-       pDoc->ConvertBytesToCoordinate(100, &pos);\r
-       CPPUNIT_ASSERT(pos.row == 2 && pos.col == 5);\r
-}\r
-\r
-void TEST_CLASS_NAME::ConvertBytesToCoordinateTest2()\r
-{\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-\r
-       Coordinate pos;\r
-\r
-       BOOL bResult = pDoc->Init(TEXT("TOMBO 1.16\r\n"), NULL, NULL);\r
-       pDoc->ConvertBytesToCoordinate(11, &pos);\r
-\r
-       CPPUNIT_ASSERT(pos.row == 1 && pos.col == 0);\r
-}\r
-\r
-// initial state\r
-void TEST_CLASS_NAME::UndoTest1()\r
-{\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-\r
-       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-\r
-       Region r0(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);\r
-\r
-       Region r = pDoc->GetUndoRegion();\r
-       LPCTSTR p = pDoc->GetUndoStr();\r
-\r
-       CPPUNIT_ASSERT(r0 == r && p == NULL);\r
-}\r
-\r
-void TEST_CLASS_NAME::UndoTest2()\r
-{\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-\r
-       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-\r
-       Region rReplace(1, 0, 1, 0);\r
-       bResult = pDoc->ReplaceString(&rReplace, TEXT("bcd"));\r
-       CPPUNIT_ASSERT(bResult);\r
-       // abcd I\r
-\r
-       Region r = pDoc->GetUndoRegion();\r
-       LPCTSTR p = pDoc->GetUndoStr();\r
-\r
-       Region rExpected(1, 0, 4, 0);\r
-       LPCTSTR pExpected = TEXT("");\r
-       CPPUNIT_ASSERT(r == rExpected);\r
-       CPPUNIT_ASSERT(_tcscmp(p, pExpected) == 0);\r
-\r
-       // Undo\r
-       bResult = pDoc->Undo();\r
-       CPPUNIT_ASSERT(bResult);\r
-\r
-       DWORD nLen;\r
-       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
-       CPPUNIT_ASSERT(_tcsncmp(pUndo1, TEXT("a"), nLen) == 0);\r
-\r
-}\r
-\r
-void TEST_CLASS_NAME::UndoTest3()\r
-{\r
-       YAEditDoc *pDoc = new YAEditDoc();\r
-\r
-       BOOL bResult = pDoc->Init(TEXT("abcde"), NULL, NULL);\r
-       CPPUNIT_ASSERT(bResult);\r
-\r
-       Region rReplace(2, 0, 4, 0);\r
-       bResult = pDoc->ReplaceString(&rReplace, TEXT("fgh"));\r
-       CPPUNIT_ASSERT(bResult);\r
-       // abcd I\r
-\r
-       Region r = pDoc->GetUndoRegion();\r
-       LPCTSTR p = pDoc->GetUndoStr();\r
-\r
-       Region rExpected(2, 0, 5, 0);\r
-       LPCTSTR pExpected = TEXT("cd");\r
-       CPPUNIT_ASSERT(r == rExpected);\r
-       CPPUNIT_ASSERT(_tcscmp(p, pExpected) == 0);\r
-\r
-\r
-       // Undo\r
-       bResult = pDoc->Undo();\r
-       CPPUNIT_ASSERT(bResult);\r
-\r
-       DWORD nLen;\r
-       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
-       CPPUNIT_ASSERT(_tcsncmp(pUndo1, TEXT("abcde"), nLen) == 0);\r
-\r
-}\r
-\r
index dca764d..8f813c8 100644 (file)
@@ -64,6 +64,10 @@ public:
        BOOL Set(LPCTSTR p);\r
        BOOL Set(const SharedString& s);\r
        LPCTSTR Get() const;\r
+\r
+#ifdef UNIT_TEST\r
+       SharedBuf *GetBuf() { return pBuf; }\r
+#endif\r
 };\r
 \r
 ////////////////////////////////////\r
index 9b61ef8..edf5af8 100644 (file)
@@ -1362,7 +1362,7 @@ char *EscapeXMLStr(LPCTSTR pStr)
 // Base64 encode/decode\r
 ////////////////////////////////////////////////////\r
 \r
-#if defined(USE_CPPUNIT)\r
+#ifdef UNIT_TEST\r
 DWORD g_Base64EncodeAllocSize;\r
 #endif\r
 \r
@@ -1376,7 +1376,7 @@ char *Base64Encode(const LPBYTE pBinary, DWORD nSrcLen)
        if (nSrcLen % 3 != 0) { nBufSiz += 4; }\r
        nBufSiz++; // for \0\r
 \r
-#if defined(USE_CPPUNIT)\r
+#ifdef UNIT_TEST\r
        g_Base64EncodeAllocSize = nBufSiz;\r
 #endif\r
 \r
index b3be59d..adafd63 100644 (file)
@@ -27,11 +27,12 @@ public:
 \r
        LPBYTE GetBuffer() { return pBuf; }\r
        LPBYTE Get(DWORD nOffset) { return pBuf + nOffset; }\r
-       DWORD CurrentUse() { return nCurrentUse; }\r
 \r
        BOOL Clear(BOOL bReAlloc);\r
 \r
-       friend class VarBufferTest;\r
+#ifdef UNIT_TEST\r
+       DWORD CurrentUse() { return nCurrentUse; }\r
+#endif\r
 };\r
 \r
 ////////////////////////////////////////////////////\r
index 9dff45d..9a9d956 100644 (file)
@@ -6,11 +6,13 @@
 /////////////////////////////////////////////\r
 \r
 class TomboURI {\r
+#ifdef UNIT_TEST\r
+public:\r
+#endif\r
        int nMaxPathItem;\r
 \r
        SharedString uri;\r
 \r
-       friend class TomboURITest;\r
 public:\r
        ///////////////////////////////\r
        // ctor, dtor and initializer\r
index 199e899..28a62bb 100644 (file)
@@ -393,6 +393,7 @@ BOOL PhysicalLineManager::ReplaceRegion(const Region *pRegion, LPCTSTR pString,
        if (pLastLine) {\r
                pAppend = pMemMgr->ConCat(pAppend, pLastLine->GetDataArea() + pRegion->posEnd.col, pLastLine->nUsed - pRegion->posEnd.col);\r
        } else {\r
+               // replace in one line\r
                pAppend = pMemMgr->ConCat(pAppend, pFirstLine->GetDataArea() + pRegion->posEnd.col, pFirstLine->nUsed - pRegion->posEnd.col);\r
        }\r
        if (pAppend == NULL) return FALSE;\r
index 25d1dde..093f486 100644 (file)
@@ -129,12 +129,11 @@ BOOL YAEditDoc::ReplaceString(const Region *pDelRegion, LPCTSTR pString)
 \r
        DWORD nPhLinesBefore = pPhLineMgr->MaxLine();\r
 \r
+       // get string which removed by this action.\r
        LPTSTR pOldTxt = pPhLineMgr->GetRegionString(pDelRegion);\r
-       ArrayAutoPointer<TCHAR> ap(pOldTxt);\r
 \r
-       if (pUndo != NULL && pUndo->rRegion.posEnd !=  pDelRegion->posEnd) {\r
+       if (pUndo != NULL) {\r
                delete pUndo;\r
-               pUndo = NULL;\r
        }\r
 \r
        // delete region and insert string\r
@@ -145,15 +144,12 @@ BOOL YAEditDoc::ReplaceString(const Region *pDelRegion, LPCTSTR pString)
        }\r
        DWORD nPhLinesAfter = pPhLineMgr->MaxLine();\r
 \r
-       if (pUndo == NULL) {\r
-               pUndo = new UndoInfo(pOldTxt);\r
-               ap.set(NULL);\r
-               if (pUndo == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
-               pUndo->rRegion = rNewRegion;\r
-       } else if (*pOldTxt == TEXT('\0')) {\r
-               pUndo->rRegion.posEnd = rNewRegion.posEnd;\r
-       }\r
+       // remember old string\r
+       pUndo = new UndoInfo(pOldTxt);\r
+       if (pUndo == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }\r
+       pUndo->rRegion = rNewRegion;\r
 \r
+       // notify to view\r
        if (pListener && !pListener->UpdateNotify(pPhLineMgr, pDelRegion, &rNewRegion, nPhLinesBefore, nPhLinesAfter, nAffLines)) {\r
                return FALSE;\r
        }\r
diff --git a/UnitTest/UnitTest.sln b/UnitTest/UnitTest.sln
new file mode 100644 (file)
index 0000000..4584056
--- /dev/null
@@ -0,0 +1,20 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 9.00\r
+# Visual Studio 2005\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest", "UnitTest\UnitTest.vcproj", "{AA7FA4D1-39CD-42D3-BAA5-A4E590786134}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Win32 = Debug|Win32\r
+               Release|Win32 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {AA7FA4D1-39CD-42D3-BAA5-A4E590786134}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {AA7FA4D1-39CD-42D3-BAA5-A4E590786134}.Debug|Win32.Build.0 = Debug|Win32\r
+               {AA7FA4D1-39CD-42D3-BAA5-A4E590786134}.Release|Win32.ActiveCfg = Release|Win32\r
+               {AA7FA4D1-39CD-42D3-BAA5-A4E590786134}.Release|Win32.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/UnitTest/UnitTest/TestRunner.cpp b/UnitTest/UnitTest/TestRunner.cpp
new file mode 100644 (file)
index 0000000..32bc69c
--- /dev/null
@@ -0,0 +1,93 @@
+#include "StdAfx.h"\r
+#include "TestRunner.h"\r
+\r
+#include <stdio.h>\r
+\r
+DWORD WINAPI TestRunProc(LPVOID pParam);\r
+\r
+TestRunner::TestRunner(void) {\r
+       hThread = NULL;\r
+}\r
+\r
+TestRunner::~TestRunner(void) {\r
+}\r
+\r
+void TestRunner::run(HWND hWnd) {\r
+       nSuccess = nFail = 0;\r
+       this->hWnd= hWnd;\r
+       hThread = CreateThread(NULL, 0, TestRunProc, this, 0, NULL);\r
+\r
+}\r
+\r
+void TestRunner::WriteMsg(LPCTSTR pMsg) {\r
+       LPTSTR p = new TCHAR[_tcslen(pMsg) + 1];\r
+       _tcscpy(p, pMsg);\r
+       SendMessage(GetWnd(), WM_COMMAND, MAKEWPARAM(IDM_APP_WRITE_RESULT, 0), (LPARAM)p);\r
+}\r
+\r
+void TestRunner::FinishNotify() {\r
+       WriteMsg(TEXT("\r\n\r\n"));\r
+       WriteMsg(TEXT("---------------\r\n"));\r
+       TCHAR buf[1024];\r
+       sprintf(buf, "Success=%d, Fail=%d\r\n", nSuccess, nFail);\r
+       WriteMsg(buf);\r
+       WriteMsg(TEXT("Test finished."));\r
+\r
+       SendMessage(GetWnd(), WM_COMMAND, MAKEWPARAM(IDM_APP_TEST_FINISHED, 0), NULL);\r
+}\r
+\r
+void TestRunner::TestSuccess() {\r
+       WriteMsg(TEXT("."));\r
+       nSuccess++;\r
+}\r
+\r
+void TestRunner::TestFail(LPCTSTR pTestCase) {\r
+       WriteMsg(TEXT("\r\n"));\r
+       WriteMsg(TEXT("FAIL"));\r
+       WriteMsg(pTestCase);\r
+       WriteMsg(TEXT("\r\n"));\r
+       nFail++;\r
+}\r
+\r
+void TestRunner::assert(BOOL b) {\r
+       if (b) {\r
+               TestSuccess();\r
+       } else {\r
+               TestFail(TEXT(""));\r
+       }\r
+}\r
+\r
+void VarBufferTest(TestRunner* pRunner);\r
+void SharedStringTest(TestRunner *r);\r
+void UniconvTest(TestRunner *r);\r
+void TomboURITest(TestRunner *r);\r
+void URIScannerTest(TestRunner *r);\r
+void MemoInfoTest(TestRunner *r);\r
+void RegexTest(TestRunner *r);\r
+void YAEditDocTest(TestRunner *r);\r
+\r
+DWORD WINAPI TestRunProc(LPVOID pParam) {\r
+       TestRunner *runner = (TestRunner*)pParam;\r
+\r
+       //////////////// TEST CASES /////////////////////\r
+       VarBufferTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       SharedStringTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       UniconvTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       TomboURITest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       URIScannerTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       MemoInfoTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       RegexTest(runner);\r
+       runner->WriteMsg(TEXT("\r\n"));\r
+       YAEditDocTest(runner);\r
+\r
+       //////////////// TEST CASES END /////////////////////\r
+\r
+       runner->FinishNotify();\r
+       return 0;\r
+}
\ No newline at end of file
diff --git a/UnitTest/UnitTest/TestRunner.h b/UnitTest/UnitTest/TestRunner.h
new file mode 100644 (file)
index 0000000..0713010
--- /dev/null
@@ -0,0 +1,28 @@
+#pragma once\r
+\r
+#define IDM_APP_TEST_FINISHED 300\r
+#define IDM_APP_WRITE_RESULT  301\r
+\r
+class TestRunner {\r
+protected:\r
+       HANDLE hThread;\r
+       HWND hWnd;\r
+\r
+       DWORD nSuccess;\r
+       DWORD nFail;\r
+\r
+public:\r
+       TestRunner(void);\r
+       ~TestRunner(void);\r
+\r
+       void run(HWND hWnd);\r
+       HWND GetWnd() { return hWnd; }\r
+\r
+       void WriteMsg(LPCTSTR pMsg);\r
+       void FinishNotify();\r
+\r
+       void TestSuccess();\r
+       void TestFail(LPCTSTR pTestCaseName);\r
+\r
+       void assert(BOOL b);\r
+};\r
diff --git a/UnitTest/UnitTest/UnitTest.aps b/UnitTest/UnitTest/UnitTest.aps
new file mode 100644 (file)
index 0000000..b46e1ac
Binary files /dev/null and b/UnitTest/UnitTest/UnitTest.aps differ
diff --git a/UnitTest/UnitTest/UnitTest.cpp b/UnitTest/UnitTest/UnitTest.cpp
new file mode 100644 (file)
index 0000000..c41be77
--- /dev/null
@@ -0,0 +1,179 @@
+#include "stdafx.h"\r
+#include "UnitTest.h"\r
+#include "TestRunner.h"\r
+\r
+#define MAX_LOADSTRING 100\r
+\r
+HINSTANCE hInst;\r
+TCHAR szTitle[MAX_LOADSTRING];\r
+TCHAR szWindowClass[MAX_LOADSTRING];\r
+\r
+HWND hStartButton = NULL;\r
+HWND hResultBox = NULL;\r
+TestRunner testRunner;\r
+\r
+ATOM                           MyRegisterClass(HINSTANCE hInstance);\r
+BOOL                           InitInstance(HINSTANCE, int);\r
+LRESULT CALLBACK       WndProc(HWND, UINT, WPARAM, LPARAM);\r
+INT_PTR CALLBACK       About(HWND, UINT, WPARAM, LPARAM);\r
+\r
+int APIENTRY _tWinMain(HINSTANCE hInstance,\r
+                     HINSTANCE hPrevInstance,\r
+                     LPTSTR    lpCmdLine,\r
+                     int       nCmdShow)\r
+{\r
+       UNREFERENCED_PARAMETER(hPrevInstance);\r
+       UNREFERENCED_PARAMETER(lpCmdLine);\r
+\r
+       MSG msg;\r
+       HACCEL hAccelTable;\r
+\r
+       LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);\r
+       LoadString(hInstance, IDC_UNITTEST, szWindowClass, MAX_LOADSTRING);\r
+       MyRegisterClass(hInstance);\r
+\r
+       if (!InitInstance (hInstance, nCmdShow))\r
+       {\r
+               return FALSE;\r
+       }\r
+\r
+       hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_UNITTEST));\r
+\r
+       while (GetMessage(&msg, NULL, 0, 0))\r
+       {\r
+               if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))\r
+               {\r
+                       TranslateMessage(&msg);\r
+                       DispatchMessage(&msg);\r
+               }\r
+       }\r
+\r
+       return (int) msg.wParam;\r
+}\r
+\r
+ATOM MyRegisterClass(HINSTANCE hInstance)\r
+{\r
+       WNDCLASSEX wcex;\r
+\r
+       wcex.cbSize = sizeof(WNDCLASSEX);\r
+\r
+       wcex.style                      = CS_HREDRAW | CS_VREDRAW;\r
+       wcex.lpfnWndProc        = WndProc;\r
+       wcex.cbClsExtra         = 0;\r
+       wcex.cbWndExtra         = 0;\r
+       wcex.hInstance          = hInstance;\r
+       wcex.hIcon                      = NULL;\r
+       wcex.hCursor            = LoadCursor(NULL, IDC_ARROW);\r
+       wcex.hbrBackground      = (HBRUSH)(COLOR_WINDOW+1);\r
+       wcex.lpszMenuName       = MAKEINTRESOURCE(IDC_UNITTEST);\r
+       wcex.lpszClassName      = szWindowClass;\r
+       wcex.hIconSm            = NULL;\r
+\r
+       return RegisterClassEx(&wcex);\r
+}\r
+\r
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)\r
+{\r
+   HWND hWnd;\r
+\r
+   hInst = hInstance;\r
+\r
+   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,\r
+      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);\r
+\r
+   if (!hWnd)\r
+   {\r
+      return FALSE;\r
+   }\r
+\r
+   ShowWindow(hWnd, nCmdShow);\r
+   UpdateWindow(hWnd);\r
+\r
+   return TRUE;\r
+}\r
+\r
+LRESULT OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam) {\r
+       LPCREATESTRUCT pCS = (LPCREATESTRUCT)lParam;\r
+\r
+       RECT r;\r
+       GetClientRect(hWnd, &r);\r
+\r
+       hStartButton = CreateWindow(TEXT("BUTTON"), TEXT("Start"),\r
+                                       WS_CHILD | WS_VISIBLE | WS_BORDER | BS_PUSHBUTTON,\r
+                                       r.left, r.top, r.right - r.left, 50,\r
+                                       hWnd, (HMENU)ID_RUN, hInst, NULL);\r
+       hResultBox = CreateWindow(TEXT("EDIT"), NULL,\r
+                                       WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL,\r
+                                       r.left, r.top + 50, r.right - r.left, r.bottom - r.top - 50,\r
+                                       hWnd, NULL, hInst, NULL);\r
+       return 0;\r
+}\r
+\r
+LRESULT OnResize(HWND hWnd, WPARAM wParam, LPARAM lParam) {\r
+       RECT r;\r
+       GetClientRect(hWnd, &r);\r
+\r
+       if (hStartButton == NULL || hResultBox == NULL) return 0;\r
+       MoveWindow(hStartButton, r.left, r.top, r.right - r.left, 50, TRUE);\r
+       MoveWindow(hResultBox, r.left, r.top + 50, r.right - r.left, r.bottom - r.top - 50, TRUE);\r
+       return 0;\r
+}\r
+\r
+void OnRunTest(HWND hWnd) {\r
+       HMENU hMenu = GetMenu(hWnd);\r
+       EnableMenuItem(hMenu, ID_RUN, MF_DISABLED | MF_GRAYED);\r
+\r
+       EnableWindow(hStartButton, FALSE);\r
+       SendMessage(hResultBox, WM_SETTEXT, 0, (LPARAM)TEXT(""));\r
+       testRunner.run(hWnd);\r
+}\r
+\r
+void OnTestFinished(HWND hWnd) {\r
+       HMENU hMenu = GetMenu(hWnd);\r
+       EnableMenuItem(hMenu, ID_RUN, MF_ENABLED);\r
+\r
+       EnableWindow(hStartButton, TRUE);\r
+}\r
+\r
+void OnWriteMsg(HWND hWnd, WPARAM wParam, LPARAM lParam) {\r
+       SendMessage(hResultBox, EM_REPLACESEL, 0, lParam);\r
+       delete[] (LPTSTR)lParam;\r
+}\r
+\r
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {\r
+       int wmId, wmEvent;\r
+\r
+       switch (message) {\r
+       case WM_CREATE:\r
+               return OnCreate(hWnd, wParam, lParam);\r
+       case WM_SIZE:\r
+               return OnResize(hWnd, wParam, lParam);\r
+       case WM_COMMAND:\r
+               wmId    = LOWORD(wParam);\r
+               wmEvent = HIWORD(wParam);\r
+               switch (wmId) {\r
+               case IDM_EXIT:\r
+                       DestroyWindow(hWnd);\r
+                       break;\r
+               case ID_RUN:\r
+                       OnRunTest(hWnd);\r
+                       break;\r
+               case IDM_APP_TEST_FINISHED:\r
+                       OnTestFinished(hWnd);\r
+                       break;\r
+               case IDM_APP_WRITE_RESULT:\r
+                       OnWriteMsg(hWnd, wParam, lParam);\r
+                       break;\r
+               default:\r
+                       return DefWindowProc(hWnd, message, wParam, lParam);\r
+               }\r
+               break;\r
+       case WM_DESTROY:\r
+               PostQuitMessage(0);\r
+               break;\r
+       default:\r
+               return DefWindowProc(hWnd, message, wParam, lParam);\r
+       }\r
+       return 0;\r
+}\r
+\r
diff --git a/UnitTest/UnitTest/UnitTest.h b/UnitTest/UnitTest/UnitTest.h
new file mode 100644 (file)
index 0000000..e60f2eb
--- /dev/null
@@ -0,0 +1,3 @@
+#pragma once\r
+\r
+#include "resource.h"\r
diff --git a/UnitTest/UnitTest/UnitTest.rc b/UnitTest/UnitTest/UnitTest.rc
new file mode 100644 (file)
index 0000000..1da21e3
--- /dev/null
@@ -0,0 +1,124 @@
+// Microsoft Visual C++ generated resource script.\r
+//\r
+#include "resource.h"\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#define APSTUDIO_HIDDEN_SYMBOLS\r
+#include "windows.h"\r
+#undef APSTUDIO_HIDDEN_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \93ú\96{\8cê resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT\r
+#pragma code_page(932)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Menu\r
+//\r
+\r
+IDC_UNITTEST MENU \r
+BEGIN\r
+    POPUP "&File"\r
+    BEGIN\r
+        MENUITEM "&Run",                        ID_RUN\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "E&xit",                       IDM_EXIT\r
+    END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDC_UNITTEST ACCELERATORS \r
+BEGIN\r
+    "/",            IDM_ABOUT,              ASCII,  ALT, NOINVERT\r
+    "?",            IDM_ABOUT,              ASCII,  ALT, NOINVERT\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_ABOUTBOX DIALOG  22, 17, 230, 75\r
+STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU\r
+CAPTION "\83o\81[\83W\83\87\83\93\8fî\95ñ"\r
+FONT 9, "MS UI Gothic"\r
+BEGIN\r
+    ICON            107,IDC_MYICON,14,9,16,16\r
+    LTEXT           "UnitTest Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX\r
+    LTEXT           "Copyright (C) 2009",IDC_STATIC,49,20,119,8\r
+    DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP\r
+END\r
+\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE \r
+BEGIN\r
+    "resource.h\0"\r
+END\r
+\r
+2 TEXTINCLUDE \r
+BEGIN\r
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
+    "#include ""windows.h""\r\n"\r
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
+    "\0"\r
+END\r
+\r
+3 TEXTINCLUDE \r
+BEGIN\r
+    "\r\n"\r
+    "\0"\r
+END\r
+\r
+#endif    // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// String Table\r
+//\r
+\r
+STRINGTABLE \r
+BEGIN\r
+    IDS_APP_TITLE           "UnitTest"\r
+    IDC_UNITTEST            "UNITTEST"\r
+END\r
+\r
+#endif    // \93ú\96{\8cê resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/UnitTest/UnitTest/UnitTest.vcproj b/UnitTest/UnitTest/UnitTest.vcproj
new file mode 100644 (file)
index 0000000..31ff0b7
--- /dev/null
@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="shift_jis"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="UnitTest"\r
+       ProjectGUID="{AA7FA4D1-39CD-42D3-BAA5-A4E590786134}"\r
+       RootNamespace="UnitTest"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="E:\work2\SF\Tombo\Src\YAEdit;E:\work2\SF\Tombo\oniguruma;E:\work2\SF\Tombo\Src;E:\work2\SF\Tombo\Src\TomboLib"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;UNIT_TEST;PLATFORM_WIN32"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="false"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               LinkIncremental="2"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="1"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="2"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               LinkIncremental="1"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\stdafx.cpp"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                               UsePrecompiledHeader="1"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                               UsePrecompiledHeader="1"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\TestRunner.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\UnitTest.cpp"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="testcase"\r
+                               >\r
+                               <File\r
+                                       RelativePath=".\testcase\MemoInfoTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\RegexTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\SharedStringTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\TomboURITest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\UniConvTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\URIScannerTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\VarBufferTest.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath=".\testcase\YAEditDocTest.cpp"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+                       <Filter\r
+                               Name="target"\r
+                               >\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\AutoPtr.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\File.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\MemManager.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\MemManager.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\MemoInfo.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\PhysicalLineManager.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\PhysicalLineManager.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\StringSplitter.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\StringSplitter.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboURI.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\TString.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\Uniconv.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\URIScanner.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\regex\util.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\VarBuffer.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\YAEditDoc.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\YAEdit\YAEditDoc.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83w\83b\83_\81\83t\83@\83C\83\8b"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\Resource.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\stdafx.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\TestRunner.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\UnitTest.h"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="target"\r
+                               >\r
+                               <File\r
+                                       RelativePath="..\..\Src\MemoInfo.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\RegexUtil.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboURI.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\TString.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\URIScanner.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\Src\TomboLib\VarBuffer.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
+               <Filter\r
+                       Name="\83\8a\83\\81[\83\83t\83@\83C\83\8b"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\UnitTest.rc"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <File\r
+                       RelativePath="..\..\oniguruma\win32\oniguruma.lib"\r
+                       >\r
+               </File>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/UnitTest/UnitTest/resource.h b/UnitTest/UnitTest/resource.h
new file mode 100644 (file)
index 0000000..40a6786
--- /dev/null
@@ -0,0 +1,27 @@
+//{{NO_DEPENDENCIES}}\r
+// Microsoft Visual C++ generated include file.\r
+// Used by UnitTest.rc\r
+//\r
+#define IDC_MYICON                      2\r
+#define IDD_UNITTEST_DIALOG             102\r
+#define IDS_APP_TITLE                   103\r
+#define IDD_ABOUTBOX                    103\r
+#define IDM_ABOUT                       104\r
+#define IDM_EXIT                        105\r
+#define IDC_UNITTEST                    109\r
+#define IDR_MAINFRAME                   128\r
+#define ID_FILE_RUN                     32771\r
+#define ID_RUN                          32772\r
+#define IDC_STATIC                      -1\r
+\r
+// Next default values for new objects\r
+// \r
+#ifdef APSTUDIO_INVOKED\r
+#ifndef APSTUDIO_READONLY_SYMBOLS\r
+#define _APS_NO_MFC                     1\r
+#define _APS_NEXT_RESOURCE_VALUE        129\r
+#define _APS_NEXT_COMMAND_VALUE         32774\r
+#define _APS_NEXT_CONTROL_VALUE         1000\r
+#define _APS_NEXT_SYMED_VALUE           110\r
+#endif\r
+#endif\r
diff --git a/UnitTest/UnitTest/stdafx.cpp b/UnitTest/UnitTest/stdafx.cpp
new file mode 100644 (file)
index 0000000..7e9bc93
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h UnitTest.pch \82Ì\82Ý\82ð\r
+// \8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b\82Í\81A\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\82É\82È\82è\82Ü\82·\81B\r
+// stdafx.obj \82É\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\8fî\95ñ\82ª\8aÜ\82Ü\82ê\82Ü\82·\81B\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: \82±\82Ì\83t\83@\83C\83\8b\82Å\82Í\82È\82­\81ASTDAFX.H \82Å\95K\97v\82È\r
+// \92Ç\89Á\83w\83b\83_\81[\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
diff --git a/UnitTest/UnitTest/stdafx.h b/UnitTest/UnitTest/stdafx.h
new file mode 100644 (file)
index 0000000..3db82f0
--- /dev/null
@@ -0,0 +1,38 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A\82Ü\82½\82Í\r
+// \8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢\81A\83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\r
+// \82ð\8bL\8fq\82µ\82Ü\82·\81B\r
+//\r
+\r
+#pragma once\r
+\r
+// \89º\82Å\8ew\92è\82³\82ê\82½\92è\8b`\82Ì\91O\82É\91Î\8fÛ\83v\83\89\83b\83g\83t\83H\81[\83\80\82ð\8ew\92è\82µ\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\8fê\8d\87\81A\88È\89º\82Ì\92è\8b`\82ð\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+// \88Ù\82È\82é\83v\83\89\83b\83g\83t\83H\81[\83\80\82É\91Î\89\9e\82·\82é\92l\82É\8aÖ\82·\82é\8dÅ\90V\8fî\95ñ\82É\82Â\82¢\82Ä\82Í\81AMSDN \82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#ifndef WINVER                         // Windows XP \88È\8d~\82Ì\83o\81[\83W\83\87\83\93\82É\8cÅ\97L\82Ì\8b@\94\\82Ì\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B\r
+#define WINVER 0x0501          // \82±\82ê\82ð Windows \82Ì\91¼\82Ì\83o\81[\83W\83\87\83\93\8cü\82¯\82É\93K\90Ø\82È\92l\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#endif\r
+\r
+#ifndef _WIN32_WINNT           // Windows XP \88È\8d~\82Ì\83o\81[\83W\83\87\83\93\82É\8cÅ\97L\82Ì\8b@\94\\82Ì\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B                   \r
+#define _WIN32_WINNT 0x0501    // \82±\82ê\82ð Windows \82Ì\91¼\82Ì\83o\81[\83W\83\87\83\93\8cü\82¯\82É\93K\90Ø\82È\92l\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#endif                                         \r
+\r
+#ifndef _WIN32_WINDOWS         // Windows 98 \88È\8d~\82Ì\83o\81[\83W\83\87\83\93\82É\8cÅ\97L\82Ì\8b@\94\\82Ì\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B\r
+#define _WIN32_WINDOWS 0x0410 // \82±\82ê\82ð Windows Me \82Ü\82½\82Í\82»\82ê\88È\8d~\82Ì\83o\81[\83W\83\87\83\93\8cü\82¯\82É\93K\90Ø\82È\92l\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#endif\r
+\r
+#ifndef _WIN32_IE                      // IE 6.0 \88È\8d~\82Ì\83o\81[\83W\83\87\83\93\82É\8cÅ\97L\82Ì\8b@\94\\82Ì\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B\r
+#define _WIN32_IE 0x0600       // \82±\82ê\82ð IE. \82Ì\91¼\82Ì\83o\81[\83W\83\87\83\93\8cü\82¯\82É\93K\90Ø\82È\92l\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#endif\r
+\r
+#define WIN32_LEAN_AND_MEAN            // Windows \83w\83b\83_\81[\82©\82ç\8eg\97p\82³\82ê\82Ä\82¢\82È\82¢\95\94\95ª\82ð\8f\9c\8aO\82µ\82Ü\82·\81B\r
+// Windows \83w\83b\83_\81\83t\83@\83C\83\8b:\r
+#include <windows.h>\r
+\r
+// C \83\89\83\93\83^\83C\83\80 \83w\83b\83_\81\83t\83@\83C\83\8b\r
+#include <stdlib.h>\r
+#include <malloc.h>\r
+#include <memory.h>\r
+#include <tchar.h>\r
+\r
+\r
+// TODO: \83v\83\8d\83O\83\89\83\80\82É\95K\97v\82È\92Ç\89Á\83w\83b\83_\81[\82ð\82±\82±\82Å\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+#include "TestRunner.h"\r
diff --git a/UnitTest/UnitTest/testcase/MemoInfoTest.cpp b/UnitTest/UnitTest/testcase/MemoInfoTest.cpp
new file mode 100644 (file)
index 0000000..c431fbb
--- /dev/null
@@ -0,0 +1,215 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+#include "TString.h"\r
+#include "UniConv.h"\r
+#include "MemoInfo.h"\r
+#include "File.h"\r
+\r
+static TestRunner *runner;\r
+static TCHAR path[MAX_PATH];\r
+\r
+\r
+static void setUp();\r
+\r
+static void WriteInfoTest1();\r
+static void WriteInfoTest2();\r
+static void ReadInfoTest1();\r
+static void ReadInfoTest2();\r
+static void RenameInfoTest1();\r
+static void RenameInfoTest2();\r
+static void DeleteInfoTest1();\r
+static void DeleteInfoTest2();\r
+\r
+void MemoInfoTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("MemoInfoTest\r\n");\r
+\r
+       setUp();\r
+\r
+       WriteInfoTest1();\r
+       WriteInfoTest2();\r
+       ReadInfoTest1();\r
+       ReadInfoTest2();\r
+       RenameInfoTest1();\r
+       RenameInfoTest2();\r
+       DeleteInfoTest1();\r
+       DeleteInfoTest2();\r
+}\r
+\r
+\r
+void setUp()\r
+{\r
+       // get current dir path\r
+       TCHAR buf[MAX_PATH];\r
+       GetModuleFileName(NULL, buf, MAX_PATH);\r
+       GetFilePath(path, buf);\r
+\r
+       wsprintf(buf, TEXT("%s%s"), path, TEXT("sub1"));\r
+       CreateDirectory(buf, NULL);\r
+\r
+       _tcscat(buf, TEXT("\\sub2"));\r
+       CreateDirectory(buf, NULL);\r
+}\r
+\r
+\r
+////////////////////////////////////////////////\r
+\r
+// Case: new Info\r
+void WriteInfoTest1() {\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
+\r
+       DeleteFile(buf);\r
+\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.WriteInfo("aaa", 0x12345678));\r
+\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       runner->assert(f.FileSize() == 5);\r
+\r
+       BYTE data[20];\r
+       DWORD nSiz = 5;\r
+       runner->assert(f.Read(data, &nSiz));\r
+       runner->assert(nSiz == 5);\r
+\r
+       runner->assert(data[0] == 1);\r
+       runner->assert(data[1] == 0x78);\r
+       runner->assert(data[2] == 0x56);\r
+       runner->assert(data[3] == 0x34);\r
+       runner->assert(data[4] == 0x12);\r
+}\r
+\r
+// Case: new Info\r
+void WriteInfoTest2() {\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
+\r
+       DeleteFile(buf);\r
+\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.WriteInfo("sub1\\sub2\\bbb", 0x12345678));\r
+\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       runner->assert(f.FileSize() == 5);\r
+\r
+       BYTE data[20];\r
+       DWORD nSiz = 5;\r
+       runner->assert(f.Read(data, &nSiz));\r
+       runner->assert(nSiz == 5);\r
+\r
+       runner->assert(data[0] == 1);\r
+       runner->assert(data[1] == 0x78);\r
+       runner->assert(data[2] == 0x56);\r
+       runner->assert(data[3] == 0x34);\r
+       runner->assert(data[4] == 0x12);\r
+}\r
+\r
+void ReadInfoTest1()\r
+{\r
+       MemoInfo mi(path);\r
+       DWORD n;\r
+\r
+       runner->assert(mi.ReadInfo("aaa", &n));\r
+       runner->assert(n == 0x12345678);\r
+}\r
+\r
+void ReadInfoTest2()\r
+{\r
+       MemoInfo mi(path);\r
+       DWORD n;\r
+\r
+       runner->assert(mi.ReadInfo("sub1\\sub2\\bbb", &n));\r
+       runner->assert(n == 0x12345678);\r
+}\r
+\r
+void RenameInfoTest1()\r
+{\r
+       TCHAR n0[MAX_PATH];\r
+       TCHAR n1[MAX_PATH];\r
+\r
+       wsprintf(n0, "%s\\aaa", path);\r
+       wsprintf(n1, "%s\\xxx", path);\r
+\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.RenameInfo(n0, n1));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "aaa.tdt");\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       runner->assert(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+\r
+       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
+       File f2;\r
+       runner->assert(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       f2.Close();\r
+\r
+       MemoInfo mi2(path);\r
+       DWORD n;\r
+       runner->assert(mi2.ReadInfo("xxx", &n));\r
+       runner->assert(n == 0x12345678);\r
+\r
+}\r
+\r
+void RenameInfoTest2()\r
+{\r
+       TCHAR n0[MAX_PATH];\r
+       TCHAR n1[MAX_PATH];\r
+\r
+       wsprintf(n0, "%s\\%s", path, "sub1\\sub2\\bbb");\r
+       wsprintf(n1, "%s\\%s", path, "sub1\\sub2\\yyy");\r
+\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.RenameInfo(n0, n1));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\bbb.tdt");\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       runner->assert(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
+       File f2;\r
+       runner->assert(f2.Open(buf, GENERIC_READ, 0, OPEN_EXISTING));\r
+       f2.Close();\r
+\r
+       MemoInfo mi2(path);\r
+       DWORD n;\r
+       runner->assert(mi2.ReadInfo("sub1\\sub2\\yyy", &n));\r
+       runner->assert(n == 0x12345678);\r
+\r
+}\r
+\r
+void DeleteInfoTest1()\r
+{\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.DeleteInfo("xxx"));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "xxx.tdt");\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       runner->assert(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+}\r
+\r
+void DeleteInfoTest2()\r
+{\r
+       MemoInfo mi(path);\r
+       runner->assert(mi.DeleteInfo("sub1\\sub2\\yyy"));\r
+\r
+       TCHAR buf[MAX_PATH];\r
+       wsprintf(buf, "%s%s", path, "sub1\\sub2\\yyy.tdt");\r
+\r
+       File f;\r
+       runner->assert(f.Open(buf, GENERIC_READ, 0, OPEN_EXISTING) == FALSE);\r
+       runner->assert(GetLastError() == ERROR_FILE_NOT_FOUND);\r
+}
\ No newline at end of file
diff --git a/UnitTest/UnitTest/testcase/RegexTest.cpp b/UnitTest/UnitTest/testcase/RegexTest.cpp
new file mode 100644 (file)
index 0000000..64446e3
--- /dev/null
@@ -0,0 +1,415 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+#include "UniConv.h"\r
+#include "RegexUtil.h"\r
+\r
+static TestRunner *runner;\r
+\r
+static void RegexTest1();\r
+static void CaseIgnoreTest1();\r
+static void CaseIgnoreTest2();\r
+static void NoMatchTest1();\r
+static void KanjiTest1();\r
+static void KanjiTest2();\r
+static void KanjiTest3();\r
+static void ConvUTF8PosToUCSPosTest1();\r
+static void ConvUTF8PosToUCSPosTest2();\r
+static void ConvUTF8PosToUCSPosTest3();\r
+static void ConvUTF8PosToUCSPosTest4();\r
+static void ConvUCSPosToUTF8PosTest1();\r
+static void ConvUCSPosToUTF8PosTest2();\r
+static void ConvUCSPosToUTF8PosTest3();\r
+static void ConvUCSPosToUTF8PosTest4();\r
+static void ShiftRightTest1();\r
+static void ShiftRightTest2();\r
+static void ShiftRightTest3();\r
+static void ShiftLeftTest1();\r
+static void ShiftLeftTest2();\r
+static void ShiftLeftTest3();\r
+static void UTF8Test1();\r
+static void UTF8Test2();\r
+static void ConvertPosTest1();\r
+static void ConvertPosTest2();\r
+static void ConvertPosTest3();\r
+static void ConvertPosTest4();\r
+static void ConvertPosTest5();\r
+static void ConvertPosTest6();\r
+\r
+void RegexTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("RegexTest\r\n");\r
+\r
+       RegexTest1();\r
+       CaseIgnoreTest1();\r
+       CaseIgnoreTest2();\r
+       NoMatchTest1();\r
+       KanjiTest1();\r
+       KanjiTest2();\r
+       KanjiTest3();\r
+       ConvUTF8PosToUCSPosTest1();\r
+       ConvUTF8PosToUCSPosTest2();\r
+       ConvUTF8PosToUCSPosTest3();\r
+       ConvUTF8PosToUCSPosTest4();\r
+       ConvUCSPosToUTF8PosTest1();\r
+       ConvUCSPosToUTF8PosTest2();\r
+       ConvUCSPosToUTF8PosTest3();\r
+       ConvUCSPosToUTF8PosTest4();\r
+       ShiftRightTest1();\r
+       ShiftRightTest2();\r
+       ShiftRightTest3();\r
+       ShiftLeftTest1();\r
+       ShiftLeftTest2();\r
+       ShiftLeftTest3();\r
+       UTF8Test1();\r
+       UTF8Test2();\r
+       ConvertPosTest1();\r
+       ConvertPosTest2();\r
+       ConvertPosTest3();\r
+       ConvertPosTest4();\r
+       ConvertPosTest5();\r
+       ConvertPosTest6();\r
+\r
+}\r
+\r
+////////////////////////////////////////////////\r
+\r
+\r
+void RegexTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pap pat pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 12);\r
+       runner->assert(nStart == 12);\r
+       runner->assert(nEnd == 15);\r
+}\r
+\r
+void CaseIgnoreTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"PAT", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pat PAT pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 12);\r
+       runner->assert(nStart == 12);\r
+       runner->assert(nEnd == 15);\r
+}\r
+\r
+\r
+void CaseIgnoreTest2() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"PAT", TRUE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pat PAT pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 8);\r
+       runner->assert(nStart == 8);\r
+       runner->assert(nEnd == 11);\r
+}\r
+\r
+void NoMatchTest1() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"pat", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       const char *pString = "aaa bbb pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == -1);\r
+}\r
+\r
+void KanjiTest1() {\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"\8a¿\8e\9a", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       char *pString = "aaa \8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 4);\r
+       runner->assert(nStart == 4);\r
+       runner->assert(nEnd == 8);\r
+}\r
+\r
+void KanjiTest2() {\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"\8a¿+\8e\9a", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       char *pString = "a\8a¿\8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 1);\r
+       runner->assert(nStart == 1);\r
+       runner->assert(nEnd==7);\r
+}\r
+\r
+void KanjiTest3() {\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile((LPBYTE)"[\8a¿\8e\9a]+", FALSE, &pReason, 0);\r
+       runner->assert(pPat != NULL);\r
+\r
+       char *pString = "\83e\83X\83ga\8a¿\8a¿\8e\9a\8e\9a\8a¿\8e\9a pap pad pas";\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, (LPBYTE)pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 7);\r
+       runner->assert(nStart == 7);\r
+       runner->assert(nEnd==19);\r
+}\r
+\r
+void ConvUTF8PosToUCSPosTest1() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"abcdefg");\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 3);\r
+       runner->assert(n == 3);\r
+}\r
+\r
+void ConvUTF8PosToUCSPosTest2() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Ó\83Æcdefg");\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 6);\r
+       runner->assert(n == 4);\r
+}\r
+\r
+void ConvUTF8PosToUCSPosTest3() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 10);\r
+       runner->assert(n == 6);\r
+}\r
+\r
+void ConvUTF8PosToUCSPosTest4() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+       DWORD n = ConvUTF8PosToUCSPos(pUTF, 18);\r
+       runner->assert(n == 12);\r
+}\r
+\r
+void ConvUCSPosToUTF8PosTest1() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"abcdefg");\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 3);\r
+       runner->assert(n == 3);\r
+}\r
+\r
+void ConvUCSPosToUTF8PosTest2() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Ó\83Æcdefg");\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 4);\r
+       runner->assert(n == 6);\r
+}\r
+\r
+void ConvUCSPosToUTF8PosTest3() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 6);\r
+       runner->assert(n == 10);\r
+}\r
+\r
+void ConvUCSPosToUTF8PosTest4() {\r
+       char *pUTF = ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+       DWORD n = ConvUCSPosToUTF8Pos(pUTF, 12);\r
+       runner->assert(n == 18);\r
+}\r
+\r
+// Shift right SJIS\r
+void ShiftRightTest1() {\r
+       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 3, 0);\r
+       runner->assert(p1 == p0 + 5);\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p1, 0);\r
+       runner->assert(p2 == p0 + 7);\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p2, 0);\r
+       runner->assert(p3 == p0 + 8);\r
+\r
+}\r
+\r
+// Shift right UTF-8\r
+void ShiftRightTest2() {\r
+       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 65001);\r
+       runner->assert(p1 == p0 + 2);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 65001);\r
+       runner->assert(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 65001);\r
+       runner->assert(p3 == p0 + 9);\r
+}\r
+\r
+// Shift right UTF-16\r
+void ShiftRightTest3() {\r
+       LPBYTE p0 = (LPBYTE)L"ab\83Î\83Æ\8a¿a\8e\9acdefg";\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftRight(p0, p0 + 1, 1200);\r
+       runner->assert(p1 == p0 + 2);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftRight(p0, p0 + 2, 1200);\r
+       runner->assert(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftRight(p0, p0 + 6, 1200);\r
+       runner->assert(p3 == p0 + 8);\r
+}\r
+\r
+// Shift left SJIS\r
+void ShiftLeftTest1() {\r
+       LPBYTE p0 = (LPBYTE)"abc\8a¿\8e\9adef¶ghi";\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 5, 0);\r
+       runner->assert(p1 == p0 + 3);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 3, 0);\r
+       runner->assert(p2 == p0 + 2);\r
+}\r
+\r
+// Shift left UTF-8\r
+void ShiftLeftTest2() {\r
+       LPBYTE p0 = (LPBYTE)ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿a\8e\9acdefg");\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 65001);\r
+       runner->assert(p1 == p0 + 6);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 65001);\r
+       runner->assert(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 65001);\r
+       runner->assert(p3 == p0 + 1);\r
+\r
+}\r
+\r
+// Shift left UTF-8\r
+void ShiftLeftTest3() {\r
+       LPBYTE p0 = (LPBYTE)L"ab\83Î\83Æ\8a¿a\8e\9acdefg";\r
+\r
+       LPBYTE p1 = (LPBYTE)ShiftLeft(p0, p0 + 9, 1200);\r
+       runner->assert(p1 == p0 + 8);\r
+\r
+       LPBYTE p2 = (LPBYTE)ShiftLeft(p0, p0 + 6, 1200);\r
+       runner->assert(p2 == p0 + 4);\r
+\r
+       LPBYTE p3 = (LPBYTE)ShiftLeft(p0, p0 + 2, 1200);\r
+       runner->assert(p3 == p0 + 0);\r
+}\r
+\r
+void UTF8Test1() {\r
+\r
+       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿\8e\9a");\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
+       runner->assert(pPat != NULL);\r
+\r
+       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿\8e\9acdefg");\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 6);\r
+       runner->assert(nStart == 6);\r
+       runner->assert(nEnd == 12);\r
+}\r
+\r
+void UTF8Test2() {\r
+\r
+       LPBYTE pPatUTF8 = (LPBYTE)ConvUCS2ToUTF8(L"b\83Î");\r
+\r
+       const char *pReason;\r
+       void *pPat = Regex_Compile(pPatUTF8, FALSE, &pReason, 65001);\r
+       runner->assert(pPat != NULL);\r
+\r
+       LPBYTE pString = (LPBYTE)ConvUCS2ToUTF8(L"ab\83Î\83Æ\8a¿\8e\9acdefg");\r
+\r
+       int nStart, nEnd;\r
+\r
+       int n = Regex_Search(pPat, 0, pString, TRUE, &nStart, &nEnd, 0);\r
+\r
+       runner->assert(n == 1);\r
+       runner->assert(nStart == 1);\r
+       runner->assert(nEnd == 4);\r
+}\r
+\r
+\r
+// UTF-8 -> Native(zero position)\r
+void ConvertPosTest1() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿ab\83Ó\8e\9a");\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 0, 65001, pDst, 0);\r
+       \r
+       runner->assert(n == 0);\r
+\r
+}\r
+\r
+// UTF-8 -> Native\r
+void ConvertPosTest2() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿ab\83Ó\8e\9a");\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 0);\r
+       runner->assert(n == 6);\r
+\r
+}\r
+\r
+// UTF-8 -> UCS2\r
+void ConvertPosTest3() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿ab\83Ó\8e\9a");\r
+       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 7, 65001, pDst, 1200);\r
+       // notice result is byte position, so not 4\r
+       runner->assert(n == 8);\r
+}\r
+\r
+// Native -> UTF-8\r
+void ConvertPosTest4() {\r
+       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+       LPBYTE pDst = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿ab\83Ó\8e\9a");\r
+\r
+       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 65001);\r
+       runner->assert(n == 7);\r
+}\r
+\r
+// Native -> UCS2\r
+void ConvertPosTest5() {\r
+       LPBYTE pSrc = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+       LPBYTE pDst = (LPBYTE)L"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 6, 0, pDst, 1200);\r
+       runner->assert(n == 8);\r
+}\r
+\r
+// UTF-8 -> Native\r
+void ConvertPosTest6() {\r
+       LPBYTE pSrc = (LPBYTE)ConvUCS2ToUTF8(L"\8a¿ab\83Ó\8e\9a");\r
+       LPBYTE pDst = (LPBYTE)"\8a¿ab\83Ó\8e\9a";\r
+\r
+       DWORD n = ConvertPos(pSrc, 10, 65001, pDst, 0);\r
+       runner->assert(n == 8);\r
+\r
+}\r
diff --git a/UnitTest/UnitTest/testcase/SharedStringTest.cpp b/UnitTest/UnitTest/testcase/SharedStringTest.cpp
new file mode 100644 (file)
index 0000000..0148a7c
--- /dev/null
@@ -0,0 +1,60 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+#include "TString.h"\r
+\r
+static TestRunner *runner;\r
+\r
+static void test1();\r
+static void test2();\r
+static void test3();\r
+\r
+void SharedStringTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("SharedStringTest\r\n");\r
+\r
+       test1();\r
+       test2();\r
+       test3();\r
+}\r
+\r
+void test1() {\r
+       SharedString ss;\r
+\r
+       runner->assert(ss.Init("TEST"));\r
+       runner->assert(strcmp(ss.Get(), "TEST") == 0);\r
+}\r
+\r
+void test2() {\r
+       SharedString ss;\r
+\r
+       runner->assert(ss.Init("TEST"));\r
+       runner->assert(strcmp(ss.Get(), "TEST") == 0);\r
+\r
+       SharedString ss2(ss);\r
+       runner->assert(strcmp(ss2.Get(), "TEST") == 0);\r
+       runner->assert(ss.Get() == ss2.Get());\r
+       runner->assert(ss2.GetBuf()->nRefCount == 2);\r
+\r
+       SharedString ss3;\r
+       runner->assert(ss3.Init(ss2));\r
+       runner->assert(strcmp(ss3.Get(), "TEST") == 0);\r
+       runner->assert(ss3.Get() == ss.Get());\r
+       runner->assert(ss3.GetBuf()->nRefCount == 3);\r
+}\r
+\r
+void test3() {\r
+       SharedString ss;\r
+       runner->assert(ss.Init("TEST"));\r
+       runner->assert(strcmp(ss.Get(), "TEST") == 0);\r
+\r
+       {\r
+               SharedString ss2(ss);\r
+               runner->assert(strcmp(ss2.Get(), "TEST") == 0);\r
+               runner->assert(ss.Get() == ss2.Get());\r
+               runner->assert(ss2.GetBuf()->nRefCount == 2);\r
+       }\r
+\r
+       runner->assert(strcmp(ss.Get(), "TEST") == 0);\r
+       runner->assert(ss.GetBuf()->nRefCount == 1);\r
+}\r
diff --git a/UnitTest/UnitTest/testcase/TomboURITest.cpp b/UnitTest/UnitTest/testcase/TomboURITest.cpp
new file mode 100644 (file)
index 0000000..6962480
--- /dev/null
@@ -0,0 +1,382 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+#include "TString.h"\r
+#include "TomboURI.h"\r
+\r
+\r
+static TestRunner *runner;\r
+\r
+static void InitTest1();\r
+static void InitTest2();\r
+static void InitTest3();\r
+static void InitTest4();\r
+static void InitTest5();\r
+static void InitTest6();\r
+static void InitTest7();\r
+static void GetRepoTest1();\r
+static void IteratorTest1();\r
+static void IteratorTest2();\r
+static void IteratorTest3();\r
+static void GetParentTest1();\r
+static void GetParentTest2();\r
+static void GetParentTest3();\r
+static void GetParentTest4();\r
+static void GetParentTest5();\r
+static void GetParentTest6();\r
+static void IsLeafTest1();\r
+static void IsLeafTest2();\r
+static void IsLeafTest3();\r
+static void GetFilePathTest1();\r
+static void GetFilePathTest2();\r
+static void GetFilePathTest3();\r
+static void GetBaseNameTest1();\r
+static void GetBaseNameTest2();\r
+static void GetBaseNameTest3();\r
+static void IsRootTest1();\r
+static void IsRootTest2();\r
+static void IsRootTest3();\r
+\r
+void TomboURITest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("TomboURITest\r\n");\r
+\r
+       InitTest1();\r
+       InitTest2();\r
+       InitTest3();\r
+       InitTest4();\r
+       InitTest5();\r
+       InitTest6();\r
+       InitTest7();\r
+       GetRepoTest1();\r
+       IteratorTest1();\r
+       IteratorTest2();\r
+       IteratorTest3();\r
+       GetParentTest1();\r
+       GetParentTest2();\r
+       GetParentTest3();\r
+       GetParentTest4();\r
+       GetParentTest5();\r
+       GetParentTest6();\r
+       IsLeafTest1();\r
+       IsLeafTest2();\r
+       IsLeafTest3();\r
+       GetFilePathTest1();\r
+       GetFilePathTest2();\r
+       GetFilePathTest3();\r
+       GetBaseNameTest1();\r
+       GetBaseNameTest2();\r
+       GetBaseNameTest3();\r
+       IsRootTest1();\r
+       IsRootTest2();\r
+       IsRootTest3();\r
+}\r
+\r
+\r
+\r
+void InitTest1() {\r
+       // no header information. fail.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("test");\r
+       runner->assert(!b);\r
+       runner->assert(GetLastError() == ERROR_INVALID_DATA);\r
+}\r
+\r
+void InitTest2() {\r
+       // incomplete repository definition. fail.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default");\r
+       runner->assert(!b);\r
+       runner->assert(GetLastError() == ERROR_INVALID_DATA);\r
+}\r
+\r
+void InitTest3() {\r
+       // directs root of default repository.\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/");\r
+       runner->assert(b);\r
+       runner->assert(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void InitTest4() {\r
+       // exists first item (no path sep)\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello");\r
+       runner->assert(b);\r
+       runner->assert(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void InitTest5() {\r
+       // exists first item (with path sep)\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello/");\r
+       runner->assert(b);\r
+       runner->assert(uri.nMaxPathItem == 7);\r
+}\r
+\r
+void InitTest6() {\r
+\r
+       TomboURI uri;\r
+       BOOL b = uri.Init("tombo://default/hello world");\r
+       runner->assert(b);\r
+       runner->assert(uri.nMaxPathItem == 11);\r
+}\r
+\r
+void InitTest7() {\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/test.txt"));\r
+\r
+       TomboURI uri2(uri);\r
+       runner->assert(uri.GetFullURI() == uri2.GetFullURI());\r
+\r
+       TomboURI uri3;\r
+       uri3.Init(uri);\r
+       runner->assert(uri.GetFullURI() == uri2.GetFullURI());\r
+}\r
+\r
+void GetRepoTest1() {\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+       \r
+       TString repo;\r
+       BOOL b = uri.GetRepositoryName(&repo);\r
+       runner->assert(b);\r
+       runner->assert(strcmp(repo.Get(), "default") == 0);\r
+}\r
+\r
+void IteratorTest1() {\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       runner->assert(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+       p = itr.Current();\r
+       runner->assert(p == NULL);\r
+       runner->assert(itr.IsLeaf() == FALSE);\r
+}\r
+\r
+void IteratorTest2() {\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc.txt"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       runner->assert(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+\r
+       p = itr.Current();\r
+       runner->assert(strcmp(p, "aaa") == 0);\r
+       runner->assert(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       runner->assert(strcmp(p, "bbb") == 0);\r
+       runner->assert(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       runner->assert(strcmp(p, "ccc.txt") == 0);\r
+       runner->assert(itr.IsLeaf() == TRUE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       runner->assert(p == NULL);\r
+\r
+       itr.Next();\r
+       runner->assert(p == NULL);\r
+\r
+}\r
+\r
+void IteratorTest3() {\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/"));\r
+\r
+       TomboURIItemIterator itr(&uri);\r
+       runner->assert(itr.Init());\r
+       LPCTSTR p;\r
+       itr.First();\r
+\r
+       p = itr.Current();\r
+       runner->assert(strcmp(p, "aaa") == 0);\r
+       runner->assert(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       runner->assert(strcmp(p, "bbb") == 0);\r
+       runner->assert(itr.IsLeaf() == FALSE);\r
+       itr.Next();\r
+\r
+       p = itr.Current();\r
+       runner->assert(p == NULL);\r
+\r
+}\r
+\r
+void GetParentTest1()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc/ddd.txt"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/ccc/") == 0);\r
+\r
+}\r
+\r
+void GetParentTest2()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
+}\r
+\r
+void GetParentTest3()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/aaa/bbb/") == 0);\r
+}\r
+\r
+void GetParentTest4()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
+}\r
+\r
+void GetParentTest5()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa.txt"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/") == 0);\r
+}\r
+\r
+void GetParentTest6()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/ddd.txt"));\r
+       TomboURI sParent;\r
+       runner->assert(uri.GetParent(&sParent));\r
+\r
+       runner->assert(strcmp(sParent.GetFullURI(), "tombo://default/aaa/") == 0);\r
+\r
+}\r
+\r
+void IsLeafTest1()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+       runner->assert(uri.IsLeaf() == FALSE);\r
+}\r
+\r
+void IsLeafTest2()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/"));\r
+       runner->assert(uri.IsLeaf() == FALSE);\r
+}\r
+\r
+void IsLeafTest3()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa"));\r
+       runner->assert(uri.IsLeaf() == TRUE);\r
+}\r
+\r
+void GetFilePathTest1()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+\r
+       TString sPath;\r
+       runner->assert(uri.GetFilePath(&sPath));\r
+       runner->assert(_tcscmp(sPath.Get(), TEXT("")) == 0);\r
+}\r
+\r
+void GetFilePathTest2()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa"));\r
+\r
+       TString sPath;\r
+       runner->assert(uri.GetFilePath(&sPath));\r
+       runner->assert(_tcscmp(sPath.Get(), TEXT("aaa")) == 0);\r
+\r
+}\r
+\r
+void GetFilePathTest3()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+\r
+       TString sPath;\r
+       runner->assert(uri.GetFilePath(&sPath));\r
+       runner->assert(_tcscmp(sPath.Get(), TEXT("aaa\\bbb\\ccc\\")) == 0);\r
+}\r
+\r
+void GetBaseNameTest1()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc/dd.txt"));\r
+\r
+       TString sBase;\r
+       runner->assert(uri.GetBaseName(&sBase));\r
+       runner->assert(_tcscmp(sBase.Get(), TEXT("dd.txt")) == 0);\r
+}\r
+\r
+void GetBaseNameTest2()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa/bbb/ccc/"));\r
+\r
+       TString sBase;\r
+       runner->assert(uri.GetBaseName(&sBase));\r
+       runner->assert(_tcscmp(sBase.Get(), TEXT("ccc")) == 0);\r
+}\r
+\r
+void GetBaseNameTest3()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+\r
+       TString sBase;\r
+       runner->assert(uri.GetBaseName(&sBase));\r
+       runner->assert(_tcscmp(sBase.Get(), TEXT("")) == 0);\r
+}\r
+\r
+void IsRootTest1()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/"));\r
+       runner->assert(uri.IsRoot() == TRUE);\r
+}\r
+\r
+void IsRootTest2()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://default/aaa.txt"));\r
+       runner->assert(uri.IsRoot() == FALSE);\r
+}\r
+\r
+void IsRootTest3()\r
+{\r
+       TomboURI uri;\r
+       runner->assert(uri.Init("tombo://repo/"));\r
+       runner->assert(uri.IsRoot() == TRUE);\r
+}\r
similarity index 81%
rename from CppUnitTestApp/test/URIScannerTest.cpp
rename to UnitTest/UnitTest/testcase/URIScannerTest.cpp
index e9ab0e8..0dffeba 100644 (file)
@@ -1,5 +1,5 @@
-#include <cppunit/extensions/HelperMacros.h>\r
-#include <cppunit/TestAssert.h>\r
+#include <windows.h>\r
+#include "../stdafx.h"\r
 \r
 #include <windows.h>\r
 #include <tchar.h>\r
 #include "VarBuffer.h"\r
 #include "URIScanner.h"\r
 \r
-#define TEST_CLASS_NAME URIScannerTest\r
-\r
-class TEST_CLASS_NAME : public CppUnit::TestFixture {\r
-       CPPUNIT_TEST_SUITE(TEST_CLASS_NAME);\r
-       CPPUNIT_TEST(URIListTest1);\r
-\r
-       CPPUNIT_TEST(URIScanTest1);\r
-       CPPUNIT_TEST(URIScanTest2);\r
-       CPPUNIT_TEST(URIScanTest3);\r
-       CPPUNIT_TEST(URIScanTest4);\r
-       CPPUNIT_TEST(URIScanTest5);\r
-       CPPUNIT_TEST(URIScanTest6);\r
-       CPPUNIT_TEST(URIScanTest7);\r
-       CPPUNIT_TEST(URIScanTest8);\r
-       CPPUNIT_TEST(PartialScanTest1);\r
-       CPPUNIT_TEST(PartialScanTest2);\r
-\r
-       CPPUNIT_TEST(InterruptTest1);\r
-       CPPUNIT_TEST(InterruptTest2);\r
-       CPPUNIT_TEST(InterruptTest3);\r
-       CPPUNIT_TEST(InterruptTest4);\r
-\r
-       CPPUNIT_TEST_SUITE_END();\r
-\r
-public:\r
-       TEST_CLASS_NAME() {}\r
-       ~TEST_CLASS_NAME() {}\r
-\r
-       virtual void setUp() {}\r
-       virtual void tearDown() {}\r
-\r
-       void URIListTest1();\r
-\r
-       void URIScanTest1();\r
-       void URIScanTest2();\r
-       void URIScanTest3();\r
-       void URIScanTest4();\r
-       void URIScanTest5();\r
-       void URIScanTest6();\r
-       void URIScanTest7();\r
-       void URIScanTest8();\r
-       void PartialScanTest1();\r
-       void PartialScanTest2();\r
-       void InterruptTest1();\r
-       void InterruptTest2();\r
-       void InterruptTest3();\r
-       void InterruptTest4();\r
-};\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION(TEST_CLASS_NAME);\r
-\r
-////////////////////////////////////////////////\r
-\r
-void TEST_CLASS_NAME::URIListTest1() {\r
+static TestRunner *runner;\r
+\r
+static void URIListTest1();\r
+static void URIScanTest1();\r
+static void URIScanTest2();\r
+static void URIScanTest3();\r
+static void URIScanTest4();\r
+static void URIScanTest5();\r
+static void URIScanTest6();\r
+static void URIScanTest7();\r
+static void URIScanTest8();\r
+static void PartialScanTest1();\r
+static void PartialScanTest2();\r
+static void InterruptTest1();\r
+static void InterruptTest2();\r
+static void InterruptTest3();\r
+static void InterruptTest4();\r
+\r
+void URIScannerTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("URIScannerTest\r\n");\r
+\r
+       URIListTest1();\r
+       URIScanTest1();\r
+       URIScanTest2();\r
+       URIScanTest3();\r
+       URIScanTest4();\r
+       URIScanTest5();\r
+       URIScanTest6();\r
+       URIScanTest7();\r
+       URIScanTest8();\r
+       PartialScanTest1();\r
+       PartialScanTest2();\r
+       InterruptTest1();\r
+       InterruptTest2();\r
+       InterruptTest3();\r
+       InterruptTest4();\r
+}\r
+\r
+void URIListTest1() {\r
        URIList list;\r
-       CPPUNIT_ASSERT(list.Init());\r
+       runner->assert(list.Init());\r
 \r
-       CPPUNIT_ASSERT(list.Add(NULL, NULL));\r
+       runner->assert(list.Add(NULL, NULL));\r
 \r
        TomboURI uri;\r
        uri.Init("tombo://default/test");\r
-       CPPUNIT_ASSERT(list.Add(&uri, NULL));\r
+       runner->assert(list.Add(&uri, NULL));\r
 \r
        {       // the case of when uri2 released first.\r
                TomboURI uri2;\r
                uri2.Init("tombo://default/test2");\r
-               CPPUNIT_ASSERT(list.Add(&uri2, NULL));\r
+               runner->assert(list.Add(&uri2, NULL));\r
        }\r
 \r
-       CPPUNIT_ASSERT(list.Add(NULL, "test"));\r
+       runner->assert(list.Add(NULL, "test"));\r
 \r
-       CPPUNIT_ASSERT(list.GetSize() == 4);\r
+       runner->assert(list.GetSize() == 4);\r
 \r
-       CPPUNIT_ASSERT(list.GetURI(0) == NULL);\r
-       CPPUNIT_ASSERT(list.GetTitle(0) == NULL);\r
-       CPPUNIT_ASSERT(strcmp(list.GetURI(1)->GetFullURI(), "tombo://default/test") == 0);\r
-       CPPUNIT_ASSERT(list.GetTitle(1) == NULL);\r
-       CPPUNIT_ASSERT(strcmp(list.GetURI(2)->GetFullURI(), "tombo://default/test2") == 0);\r
-       CPPUNIT_ASSERT(list.GetTitle(2) == NULL);\r
-       CPPUNIT_ASSERT(list.GetURI(3) == NULL);\r
-       CPPUNIT_ASSERT(strcmp(list.GetTitle(3), "test") == 0);\r
+       runner->assert(list.GetURI(0) == NULL);\r
+       runner->assert(list.GetTitle(0) == NULL);\r
+       runner->assert(strcmp(list.GetURI(1)->GetFullURI(), "tombo://default/test") == 0);\r
+       runner->assert(list.GetTitle(1) == NULL);\r
+       runner->assert(strcmp(list.GetURI(2)->GetFullURI(), "tombo://default/test2") == 0);\r
+       runner->assert(list.GetTitle(2) == NULL);\r
+       runner->assert(list.GetURI(3) == NULL);\r
+       runner->assert(strcmp(list.GetTitle(3), "test") == 0);\r
 }\r
 \r
 ////////////////////////////////////////////////\r
@@ -253,12 +239,12 @@ void TestScanner1::FullScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBa
 \r
        TestScanner1 s1;\r
 \r
-       CPPUNIT_ASSERT(s1.Init(pRepo, &base, FALSE));\r
+       runner->assert(s1.Init(pRepo, &base, FALSE));\r
 \r
        BOOL bResult = s1.FullScan();\r
-       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       runner->assert(bResult == TRUE);\r
        LPCTSTR pResultStr = s1.sbuf.Get(0);\r
-       CPPUNIT_ASSERT(s1.Check(pTestName, pCorrect));\r
+       runner->assert(s1.Check(pTestName, pCorrect));\r
 }\r
 \r
 void TestScanner1::ScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *pRepo, const TomboURI *pURI, BOOL bReverse)\r
@@ -268,12 +254,12 @@ void TestScanner1::ScanTest(LPCTSTR pTestName, LPCTSTR pCorrect, DummyRepoBase *
 \r
        TestScanner1 s1;\r
 \r
-       CPPUNIT_ASSERT(s1.Init(pRepo, &base, FALSE));\r
+       runner->assert(s1.Init(pRepo, &base, FALSE));\r
 \r
        BOOL bResult = s1.Scan(pURI, bReverse);\r
-       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       runner->assert(bResult == TRUE);\r
        LPCTSTR pResultStr = s1.sbuf.Get(0);\r
-       CPPUNIT_ASSERT(s1.Check(pTestName, pCorrect));\r
+       runner->assert(s1.Check(pTestName, pCorrect));\r
 }\r
 \r
 BOOL TestScanner1::Check(LPCTSTR pMsg, LPCTSTR pCorrect)\r
@@ -311,7 +297,7 @@ URIList *Repo1::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
 }\r
 \r
 // test runner\r
-void TEST_CLASS_NAME::URIScanTest1() \r
+void URIScanTest1() \r
 {\r
        LPCTSTR pTest = "TEST1";\r
        LPCTSTR pCorrect = \r
@@ -345,7 +331,7 @@ URIList *Repo2::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
        return pList;\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest2() \r
+void URIScanTest2() \r
 {\r
        LPCTSTR pTest = "TEST3";\r
        LPCTSTR pCorrect = \r
@@ -387,7 +373,7 @@ URIList *Repo3::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
        return pList;\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest3() \r
+void URIScanTest3() \r
 {\r
        LPCTSTR pTest = "TEST3";\r
        LPCTSTR pCorrect = \r
@@ -455,7 +441,7 @@ URIList *Repo4::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
        return pList;\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest4() \r
+void URIScanTest4() \r
 {\r
        LPCTSTR pTest = "TEST4";\r
        LPCTSTR pCorrect = \r
@@ -496,7 +482,7 @@ void TestScanner2::Node()
        }\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest5() \r
+void URIScanTest5() \r
 {\r
        LPCTSTR pTest = "TEST5";\r
        LPCTSTR pCorrect = \r
@@ -516,12 +502,12 @@ void TEST_CLASS_NAME::URIScanTest5()
 \r
        TestScanner2 s1;\r
 \r
-       CPPUNIT_ASSERT(s1.Init(&rep, &base, FALSE));\r
+       runner->assert(s1.Init(&rep, &base, FALSE));\r
 \r
        BOOL bResult = s1.FullScan();\r
-       CPPUNIT_ASSERT_EQUAL(bResult, TRUE);\r
+       runner->assert(bResult == TRUE);\r
        LPCTSTR pResultStr = s1.sbuf.Get(0);\r
-       CPPUNIT_ASSERT(s1.Check(pTest, pCorrect));\r
+       runner->assert(s1.Check(pTest, pCorrect));\r
 }\r
 \r
 ////////////////////////////////////////////////\r
@@ -544,7 +530,7 @@ URIList *Repo6::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
        }\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest6() \r
+void URIScanTest6() \r
 {\r
        LPCTSTR pTest = "TEST6";\r
        LPCTSTR pCorrect = \r
@@ -575,7 +561,7 @@ URIList *Repo7::GetChild(const TomboURI *pFolderURI, BOOL bSkipEncrypt, BOOL bLo
        return NULL;\r
 }\r
 \r
-void TEST_CLASS_NAME::URIScanTest7() \r
+void URIScanTest7() \r
 {\r
        LPCTSTR pTest = "TEST7";\r
        LPCTSTR pCorrect = \r
@@ -591,7 +577,7 @@ void TEST_CLASS_NAME::URIScanTest7()
 //\r
 // reverse order of URIScanTest4()\r
 \r
-void TEST_CLASS_NAME::URIScanTest8() \r
+void URIScanTest8() \r
 {\r
        LPCTSTR pTest = "TEST8";\r
        LPCTSTR pCorrect = \r
@@ -617,7 +603,7 @@ void TEST_CLASS_NAME::URIScanTest8()
 //\r
 // partial scan test\r
 \r
-void TEST_CLASS_NAME::PartialScanTest1() \r
+void PartialScanTest1() \r
 {\r
        LPCTSTR pTest = "TEST-P1";\r
        LPCTSTR pCorrect = \r
@@ -646,7 +632,7 @@ void TEST_CLASS_NAME::PartialScanTest1()
 //\r
 // baseURI and startURI is same\r
 \r
-void TEST_CLASS_NAME::PartialScanTest2() \r
+void PartialScanTest2() \r
 {\r
        LPCTSTR pTest = "PSTEST2";\r
        LPCTSTR pCorrect = \r
@@ -675,7 +661,7 @@ void TEST_CLASS_NAME::PartialScanTest2()
 //\r
 // cancelled at root\r
 \r
-void TEST_CLASS_NAME::InterruptTest1() \r
+void InterruptTest1() \r
 {\r
        LPCTSTR pTest = "IRTEST1";\r
        LPCTSTR pCorrect = \r
@@ -693,7 +679,7 @@ void TEST_CLASS_NAME::InterruptTest1()
 //\r
 // cancelled at sub folder\r
 \r
-void TEST_CLASS_NAME::InterruptTest2() \r
+void InterruptTest2() \r
 {\r
        LPCTSTR pTest = "IRTEST1";\r
        LPCTSTR pCorrect = \r
@@ -716,7 +702,7 @@ void TEST_CLASS_NAME::InterruptTest2()
 //\r
 // cancelled at sub folder\r
 \r
-void TEST_CLASS_NAME::InterruptTest3() \r
+void InterruptTest3() \r
 {\r
        LPCTSTR pTest = "IRTEST1";\r
        LPCTSTR pCorrect = \r
@@ -742,7 +728,7 @@ void TEST_CLASS_NAME::InterruptTest3()
 //\r
 // cancelled at sub folder\r
 \r
-void TEST_CLASS_NAME::InterruptTest4() \r
+void InterruptTest4() \r
 {\r
        LPCTSTR pTest = "IRTEST1";\r
        LPCTSTR pCorrect = \r
diff --git a/UnitTest/UnitTest/testcase/UniConvTest.cpp b/UnitTest/UnitTest/testcase/UniConvTest.cpp
new file mode 100644 (file)
index 0000000..22b32ff
--- /dev/null
@@ -0,0 +1,215 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+#include "Uniconv.h"\r
+\r
+static TestRunner *runner;\r
+\r
+static void Base64EncodeTest1();\r
+static void Base64EncodeTest2();\r
+static void Base64EncodeTest3();\r
+static void Base64EncodeTest4_1();\r
+static void Base64EncodeTest4_2();\r
+static void Base64EncodeTest4_3();\r
+static void Base64EncodeTest4_4();\r
+static void Base64EncodeTest4_5();\r
+static void Base64EncodeTest4_6();\r
+static void Base64EncodeTest4_7();\r
+static void Base64DecodeTest1();\r
+static void Base64DecodeTest2();\r
+static void ConvUTF8ToUCS2Test1();\r
+static void ConvUTF8ToUCS2Test2();\r
+static void ConvUTF8ToUCS2Test3();\r
+static void ConvUCS2ToUTF8Test1();\r
+static void ConvUCS2ToUTF8Test2();\r
+static void ConvUCS2ToUTF8Test3();\r
+\r
+void UniconvTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("UniconvTest\r\n");\r
+\r
+       Base64EncodeTest1();\r
+       Base64EncodeTest2();\r
+       Base64EncodeTest3();\r
+       Base64EncodeTest4_1();\r
+       Base64EncodeTest4_2();\r
+       Base64EncodeTest4_3();\r
+       Base64EncodeTest4_4();\r
+       Base64EncodeTest4_5();\r
+       Base64EncodeTest4_6();\r
+       Base64EncodeTest4_7();\r
+       Base64DecodeTest1();\r
+       Base64DecodeTest2();\r
+       ConvUTF8ToUCS2Test1();\r
+       ConvUTF8ToUCS2Test2();\r
+       ConvUTF8ToUCS2Test3();\r
+       ConvUCS2ToUTF8Test1();\r
+       ConvUCS2ToUTF8Test2();\r
+       ConvUCS2ToUTF8Test3();\r
+}\r
+\r
+// test probe\r
+extern DWORD g_Base64EncodeAllocSize;\r
+\r
+////////////////////////////////////////////////\r
+\r
+void Base64EncodeTest1() {\r
+       char *pOut = Base64Encode((LPBYTE)"Hello", 5);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 9);\r
+       runner->assert(strcmp("SGVsbG8=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest2() {\r
+       char *pOut = Base64Encode(NULL, 5);\r
+       runner->assert(pOut == NULL);\r
+}\r
+\r
+void Base64EncodeTest3() {\r
+       char *pOut = Base64Encode((LPBYTE)"Hello", 0);\r
+       runner->assert(pOut == NULL);\r
+}\r
+\r
+void Base64EncodeTest4_1()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 1);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 5);\r
+       runner->assert(strcmp("SA==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_2()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 2);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 5);\r
+       runner->assert(strcmp("SGU=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_3()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 3);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 5);\r
+       runner->assert(strcmp("SGVs", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_4()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 4);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 9);\r
+       runner->assert(strcmp("SGVsbA==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_5()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 5);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 9);\r
+       runner->assert(strcmp("SGVsbG8=", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_6()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello ", 6);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 9);\r
+       runner->assert(strcmp("SGVsbG8g", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64EncodeTest4_7()\r
+{\r
+       char *pOut = Base64Encode((LPBYTE)"Hello w", 7);\r
+\r
+       runner->assert(g_Base64EncodeAllocSize == 13);\r
+       runner->assert(strcmp("SGVsbG8gdw==", pOut) == 0);\r
+       delete [] pOut;\r
+}\r
+\r
+void Base64DecodeTest1()\r
+{\r
+       DWORD n;\r
+       LPBYTE p = Base64Decode("SGVsbG8=", &n);\r
+       runner->assert(n == 5);\r
+       runner->assert(strncmp((char*)p, "Hello", 5) == 0);\r
+       delete [] p;\r
+}\r
+\r
+void Base64DecodeTest2()\r
+{\r
+       DWORD n;\r
+       LPBYTE p = Base64Decode("SGVsbG8", &n);\r
+       runner->assert(p == NULL);\r
+}\r
+\r
+\r
+// UTF-8 1 byte conversion\r
+void ConvUTF8ToUCS2Test1()\r
+{\r
+       char aInput[] = { 0x54, 0x45, 0x53, 0x54, 0x00};        // "TEST"\r
+       WCHAR aExpect[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       runner->assert(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+// UTF-8 2 byte conversion\r
+void ConvUTF8ToUCS2Test2()\r
+{\r
+       char aInput[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};        //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
+       WCHAR aExpect[] = {0x03b8, 0x03c0, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       runner->assert(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+// UTF-8 3 byte conversion\r
+void ConvUTF8ToUCS2Test3()\r
+{\r
+       char aInput[] = {       (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
+                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
+                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
+                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
+       WCHAR aExpect[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
+\r
+       LPWSTR pResult = ConvUTF8ToUCS2(aInput);\r
+       runner->assert(wcscmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void ConvUCS2ToUTF8Test1()\r
+{\r
+       WCHAR aInput[] = {0x0054, 0x0045, 0x0053, 0x0054, 0x0000};      // "TEST"\r
+       char aExpect[] = { 0x54, 0x45, 0x53, 0x54, 0x00};\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       runner->assert(strcmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void ConvUCS2ToUTF8Test2()\r
+{\r
+       WCHAR aInput[] = {0x03b8, 0x03c0, 0x0000};\r
+       char aExpect[] = { (char)0xce, (char)0xb8, (char)0xcf, (char)0x80, 0x00};       //  #GREEK SMALL LETTER THETA, #GREEK SMALL LETTER PI\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       runner->assert(strcmp(aExpect, pResult) == 0);\r
+}\r
+\r
+void ConvUCS2ToUTF8Test3()\r
+{\r
+       WCHAR aInput[] = {0x3068, 0x3093, 0x307c, 0x873b, 0x86c9, 0x0000};\r
+       char aExpect[] = {      (char)0xe3, (char)0x81, (char)0xa8, (char)0xe3, // TOMBO by Hira-gana and Kanji\r
+                                               (char)0x82, (char)0x93, (char)0xe3, (char)0x81,\r
+                                               (char)0xbc, (char)0xe8, (char)0x9c, (char)0xbb,\r
+                                               (char)0xe8, (char)0x9b, (char)0x89, (char)0x00};\r
+\r
+       char *pResult = ConvUCS2ToUTF8(aInput);\r
+       runner->assert(strcmp(aExpect, pResult) == 0);\r
+}\r
diff --git a/UnitTest/UnitTest/testcase/VarBufferTest.cpp b/UnitTest/UnitTest/testcase/VarBufferTest.cpp
new file mode 100644 (file)
index 0000000..0cb2f28
--- /dev/null
@@ -0,0 +1,135 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+#include "VarBuffer.h"\r
+\r
+static TestRunner *runner;\r
+\r
+static void test1();\r
+static void test2();\r
+static void test3();\r
+static void test4();\r
+static void test5();\r
+\r
+void VarBufferTest(TestRunner *r) {\r
+       runner = r;\r
+\r
+       runner->WriteMsg("VarBufferTest\r\n");\r
+       test1();\r
+       test2();\r
+       test3();\r
+       test4();\r
+       test5();\r
+}\r
+\r
+void test1() {\r
+       VarBufferImpl vb;\r
+       DWORD nc;\r
+\r
+       runner->assert(vb.Init(10, 10));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 10);\r
+\r
+       // initial data. not extended\r
+       char buf[20];\r
+       strcpy(buf, "0123456789abcdef");\r
+       runner->assert(vb.Add((LPBYTE)buf, 5, NULL));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 10);\r
+       runner->assert(vb.CurrentUse() == 5);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), "01234", 5) == 0);\r
+\r
+       // append data\r
+       runner->assert(vb.Add((LPBYTE)(buf + 5), 4, &nc));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 10);\r
+       runner->assert(vb.CurrentUse() == 9);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), "012345678", 9) == 0);\r
+       runner->assert(nc == 5);\r
+\r
+       // append data exntend memory\r
+       runner->assert(vb.Add((LPBYTE)(buf + 9), 1, &nc));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 20);\r
+       runner->assert(vb.CurrentUse() == 10);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), "0123456789", 10) == 0);\r
+       runner->assert(nc == 9);\r
+}\r
+\r
+void test2() {\r
+       VarBufferImpl vb;\r
+\r
+       runner->assert(vb.Init(5, 5));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 5);\r
+\r
+       // extend multi blocks\r
+       char buf[30];\r
+       runner->assert(vb.Add((LPBYTE)buf, 19, NULL));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 20);\r
+       runner->assert(vb.CurrentUse() == 19);\r
+}\r
+\r
+void test3() {\r
+       ////////\r
+       // clear test\r
+\r
+       char buf[30];\r
+\r
+       VarBufferImpl vb1;\r
+       runner->assert(vb1.Init(5, 5));\r
+       runner->assert(LocalSize(vb1.GetBuffer()) == 5);\r
+\r
+       runner->assert(vb1.Add((LPBYTE)buf, 20, NULL));\r
+       runner->assert(LocalSize(vb1.GetBuffer()) == 25);\r
+       runner->assert(vb1.CurrentUse() == 20);\r
+\r
+       // clear but keep buffer\r
+       runner->assert(vb1.Clear(FALSE));\r
+       runner->assert(vb1.CurrentUse() == 0);\r
+       runner->assert(LocalSize(vb1.GetBuffer()) == 25);\r
+\r
+       // clear and realloc buffer\r
+       runner->assert(vb1.Clear(TRUE));\r
+       runner->assert(vb1.CurrentUse() == 0);\r
+       runner->assert(LocalSize(vb1.GetBuffer()) == 5);\r
+\r
+}\r
+\r
+void test4()\r
+{\r
+       // extend test\r
+       const char *pSample = "0123456789abcdef";\r
+\r
+       VarBufferImpl vb;\r
+       runner->assert(vb.Init(10, 5));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 10);\r
+       runner->assert(vb.Add((LPBYTE)pSample, 5, NULL));\r
+\r
+       runner->assert(vb.Extend(0, 2));\r
+       runner->assert(strncmp((const char*)vb.GetBuffer() + 2, "012345678", 5) == 0);\r
+\r
+       runner->assert(vb.Extend(7, 2));\r
+       runner->assert(vb.CurrentUse() == 9);\r
+\r
+       runner->assert(vb.Extend(4, 2));\r
+       runner->assert(vb.CurrentUse() == 11);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer() + 2, "012", 3) == 0);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer() + 7, "345", 2) == 0);\r
+}\r
+\r
+void test5()\r
+{\r
+       // shorten test\r
+       const char *pSample = "0123456789abcdef";\r
+       VarBufferImpl vb;\r
+\r
+       runner->assert(vb.Init(10, 5));\r
+       runner->assert(LocalSize(vb.GetBuffer()) == 10);\r
+       runner->assert(vb.Add((LPBYTE)pSample, 9, NULL));\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), pSample, 9) == 0);\r
+\r
+       runner->assert(vb.Shorten(0, 2));\r
+       runner->assert(vb.CurrentUse() == 7);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), pSample + 2, 7) == 0);\r
+\r
+       runner->assert(vb.Shorten(5, 2));\r
+       runner->assert(vb.CurrentUse() == 5);\r
+       runner->assert(strncmp((const char*)vb.GetBuffer(), pSample + 2, 5) == 0);\r
+\r
+}\r
diff --git a/UnitTest/UnitTest/testcase/YAEditDocTest.cpp b/UnitTest/UnitTest/testcase/YAEditDocTest.cpp
new file mode 100644 (file)
index 0000000..099873b
--- /dev/null
@@ -0,0 +1,350 @@
+#include <windows.h>\r
+#include "../stdafx.h"\r
+\r
+\r
+#include "VarBuffer.h"\r
+#include "Region.h"\r
+#include "YAEditDoc.h"\r
+#include "PhysicalLineManager.h"\r
+#include "MemManager.h"\r
+\r
+static TestRunner *runner;\r
+\r
+static void LoadTest1();\r
+static void LoadTest2();\r
+static void LoadTest3();\r
+static void LoadTest4();\r
+static void LoadTest5();\r
+static void LoadTest6();\r
+static void LoadTest7();\r
+static void LoadTest8();\r
+static void ConvertBytesToCoordinateTest1();\r
+static void ConvertBytesToCoordinateTest2();\r
+static void UndoTest1();\r
+static void UndoTest2();\r
+static void UndoTest3();\r
+\r
+void YAEditDocTest(TestRunner *r) {\r
+       runner = r;\r
+       runner->WriteMsg("YAEditDocTest\r\n");\r
+\r
+       LoadTest1();\r
+       LoadTest2();\r
+       LoadTest3();\r
+       LoadTest4();\r
+       LoadTest5();\r
+       LoadTest6();\r
+       LoadTest7();\r
+       LoadTest8();\r
+       ConvertBytesToCoordinateTest1();\r
+       ConvertBytesToCoordinateTest2();\r
+       UndoTest1();\r
+       UndoTest2();\r
+       UndoTest3();\r
+\r
+}\r
+\r
+////////////////////////////////////////////////\r
+\r
+// empty string\r
+void LoadTest1() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT(""), NULL, NULL);\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 1);\r
+       LineInfo *pLi = pLM->GetLineInfo(0);\r
+\r
+       runner->assert(pLi->pLine->nUsed == 0);\r
+}\r
+\r
+// 1 line string without CRLF\r
+void LoadTest2() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hello world"), NULL, NULL);\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 1);\r
+       LineInfo *pLi = pLM->GetLineInfo(0);\r
+\r
+       runner->assert(pLi->pLine->nUsed == 11);\r
+}\r
+\r
+// 2 line string\r
+void LoadTest3() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hellow\r\nworld"), NULL, NULL);\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 2);\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 6);\r
+\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       runner->assert(_tcsncmp(p0, TEXT("Hellow"), 6) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 5);\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       runner->assert(_tcsncmp(p1, TEXT("world"), 5) == 0);    \r
+}\r
+\r
+// 2 line string end with CRLF\r
+void LoadTest4() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("Hello\r\n"), NULL, NULL);\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 2);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 5);\r
+\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       runner->assert(_tcsncmp(p0, TEXT("Hello"), 5) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 0);\r
+}\r
+\r
+// 2 line string start with CRLF\r
+void LoadTest5() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\nHello"), NULL, NULL);\r
+\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 2);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 5);\r
+\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       runner->assert(_tcsncmp(p1, TEXT("Hello"), 5) == 0);\r
+\r
+}\r
+\r
+// CRLF\r
+// CRLF\r
+// CRLF\r
+// EOF\r
+void LoadTest6() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\n\r\n\r\n"), NULL, NULL);\r
+\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 4);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       runner->assert(pLi2->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
+       runner->assert(pLi3->pLine->nUsed == 0);\r
+\r
+}\r
+\r
+// CRLF\r
+// CRLF\r
+// abcCRLF\r
+// CRLF\r
+// CRLF\r
+// EOF\r
+void LoadTest7() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("\r\n\r\nabc\r\n\r\n\r\n"), NULL, NULL);\r
+\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 6);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       runner->assert(pLi2->pLine->nUsed == 3);\r
+       LPCTSTR p2 = pLM->GetLine(2);\r
+       runner->assert(_tcsncmp(p2, TEXT("abc"), 3) == 0);\r
+\r
+\r
+       LineInfo *pLi3 = pLM->GetLineInfo(3);\r
+       runner->assert(pLi3->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi4 = pLM->GetLineInfo(4);\r
+       runner->assert(pLi4->pLine->nUsed == 0);\r
+\r
+       LineInfo *pLi5 = pLM->GetLineInfo(5);\r
+       runner->assert(pLi5->pLine->nUsed == 0);\r
+\r
+}\r
+\r
+// abcCRLF\r
+// defCRLF\r
+// ghi[EOF]\r
+void LoadTest8() {\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("abc\r\ndef\r\nghi"), NULL, NULL);\r
+\r
+       runner->assert(bResult);\r
+       PhysicalLineManager *pLM = pDoc->GetPhMgr();\r
+\r
+       runner->assert(pLM->MaxLine() == 3);\r
+\r
+       LineInfo *pLi0 = pLM->GetLineInfo(0);\r
+       runner->assert(pLi0->pLine->nUsed == 3);\r
+       LPCTSTR p0 = pLM->GetLine(0);\r
+       runner->assert(_tcsncmp(p0, TEXT("abc"), 3) == 0);\r
+\r
+       LineInfo *pLi1 = pLM->GetLineInfo(1);\r
+       runner->assert(pLi1->pLine->nUsed == 3);\r
+       LPCTSTR p1 = pLM->GetLine(1);\r
+       runner->assert(_tcsncmp(p1, TEXT("def"), 3) == 0);\r
+\r
+       LineInfo *pLi2 = pLM->GetLineInfo(2);\r
+       runner->assert(pLi2->pLine->nUsed == 3);\r
+       LPCTSTR p2 = pLM->GetLine(2);\r
+       runner->assert(_tcsncmp(p2, TEXT("ghi"), 3) == 0);\r
+}\r
+\r
+// abcCRLF\r
+// defgCRLF\r
+// hijklEOF\r
+void ConvertBytesToCoordinateTest1()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+       BOOL bResult = pDoc->Init(TEXT("abc\r\ndefg\r\nhijkl"), NULL, NULL);\r
+\r
+       Coordinate pos;\r
+       pDoc->ConvertBytesToCoordinate(0, &pos);\r
+       runner->assert(pos.row == 0 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(2, &pos);\r
+       runner->assert(pos.row == 0 && pos.col == 2);\r
+\r
+       pDoc->ConvertBytesToCoordinate(5, &pos);\r
+       runner->assert(pos.row == 1 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(6, &pos);\r
+       runner->assert(pos.row == 1 && pos.col == 1);\r
+\r
+       pDoc->ConvertBytesToCoordinate(9, &pos);\r
+       runner->assert(pos.row == 1 && pos.col == 4);\r
+\r
+       pDoc->ConvertBytesToCoordinate(11, &pos);\r
+       runner->assert(pos.row == 2 && pos.col == 0);\r
+\r
+       pDoc->ConvertBytesToCoordinate(16, &pos);\r
+       runner->assert(pos.row == 2 && pos.col == 5);\r
+\r
+       pDoc->ConvertBytesToCoordinate(100, &pos);\r
+       runner->assert(pos.row == 2 && pos.col == 5);\r
+}\r
+\r
+void ConvertBytesToCoordinateTest2()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       Coordinate pos;\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("TOMBO 1.16\r\n"), NULL, NULL);\r
+       pDoc->ConvertBytesToCoordinate(11, &pos);\r
+\r
+       runner->assert(pos.row == 1 && pos.col == 0);\r
+}\r
+\r
+// initial state\r
+void UndoTest1()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
+       runner->assert(bResult);\r
+\r
+       Region r0(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       runner->assert(r0 == r && p == NULL);\r
+}\r
+\r
+void UndoTest2()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("a"), NULL, NULL);\r
+       runner->assert(bResult);\r
+\r
+       Region rReplace(1, 0, 1, 0);\r
+       bResult = pDoc->ReplaceString(&rReplace, TEXT("bcd"));\r
+       runner->assert(bResult);\r
+       // abcd I\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       Region rExpected(1, 0, 4, 0);\r
+       LPCTSTR pExpected = TEXT("");\r
+       runner->assert(r == rExpected);\r
+       runner->assert(_tcscmp(p, pExpected) == 0);\r
+\r
+       // Undo\r
+       bResult = pDoc->Undo();\r
+       runner->assert(bResult);\r
+\r
+       DWORD nLen;\r
+       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
+       runner->assert(_tcsncmp(pUndo1, TEXT("a"), nLen) == 0);\r
+\r
+}\r
+\r
+void UndoTest3()\r
+{\r
+       YAEditDoc *pDoc = new YAEditDoc();\r
+\r
+       BOOL bResult = pDoc->Init(TEXT("abcde"), NULL, NULL);\r
+       runner->assert(bResult);\r
+\r
+       Region rReplace(2, 0, 4, 0);\r
+       bResult = pDoc->ReplaceString(&rReplace, TEXT("fgh"));\r
+       runner->assert(bResult);\r
+       // abcd I\r
+\r
+       Region r = pDoc->GetUndoRegion();\r
+       LPCTSTR p = pDoc->GetUndoStr();\r
+\r
+       Region rExpected(2, 0, 5, 0);\r
+       LPCTSTR pExpected = TEXT("cd");\r
+       runner->assert(r == rExpected);\r
+       runner->assert(_tcscmp(p, pExpected) == 0);\r
+\r
+\r
+       // Undo\r
+       bResult = pDoc->Undo();\r
+       runner->assert(bResult);\r
+\r
+       DWORD nLen;\r
+       LPTSTR pUndo1 = pDoc->GetDocumentData(&nLen);\r
+       runner->assert(_tcsncmp(pUndo1, TEXT("abcde"), nLen) == 0);\r
+\r
+}\r
+\r
index dbeff21..7d2ba05 100644 (file)
Binary files a/Win32/Tombo/Tombo.suo and b/Win32/Tombo/Tombo.suo differ