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
+++ /dev/null
-// 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
+++ /dev/null
-# 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ñ\81B \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
+++ /dev/null
-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
+++ /dev/null
-// 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
+++ /dev/null
-//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
+++ /dev/null
-// 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
+++ /dev/null
-// 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
+++ /dev/null
-========================================================================\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
+++ /dev/null
-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
+++ /dev/null
-//{{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
+++ /dev/null
-// 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
+++ /dev/null
-// 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
+++ /dev/null
-//\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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
+++ /dev/null
-#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
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
// Base64 encode/decode\r
////////////////////////////////////////////////////\r
\r
-#if defined(USE_CPPUNIT)\r
+#ifdef UNIT_TEST\r
DWORD g_Base64EncodeAllocSize;\r
#endif\r
\r
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
\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
/////////////////////////////////////////////\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
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
\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
}\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
--- /dev/null
+\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
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+#pragma once\r
+\r
+#include "resource.h"\r
--- /dev/null
+// 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
--- /dev/null
+<?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[\83X \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[\83X \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
--- /dev/null
+//{{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
--- /dev/null
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h UnitTest.pch \82Ì\82Ý\82ð\r
+// \8aÜ\82Þ\83\\81[\83X \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
--- /dev/null
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83h \83t\83@\83C\83\8b\82Ì\83C\83\93\83N\83\8b\81[\83h \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[\83h \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
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+#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
-#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
\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
\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
}\r
\r
// test runner\r
-void TEST_CLASS_NAME::URIScanTest1() \r
+void URIScanTest1() \r
{\r
LPCTSTR pTest = "TEST1";\r
LPCTSTR pCorrect = \r
return pList;\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest2() \r
+void URIScanTest2() \r
{\r
LPCTSTR pTest = "TEST3";\r
LPCTSTR pCorrect = \r
return pList;\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest3() \r
+void URIScanTest3() \r
{\r
LPCTSTR pTest = "TEST3";\r
LPCTSTR pCorrect = \r
return pList;\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest4() \r
+void URIScanTest4() \r
{\r
LPCTSTR pTest = "TEST4";\r
LPCTSTR pCorrect = \r
}\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest5() \r
+void URIScanTest5() \r
{\r
LPCTSTR pTest = "TEST5";\r
LPCTSTR pCorrect = \r
\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
}\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest6() \r
+void URIScanTest6() \r
{\r
LPCTSTR pTest = "TEST6";\r
LPCTSTR pCorrect = \r
return NULL;\r
}\r
\r
-void TEST_CLASS_NAME::URIScanTest7() \r
+void URIScanTest7() \r
{\r
LPCTSTR pTest = "TEST7";\r
LPCTSTR pCorrect = \r
//\r
// reverse order of URIScanTest4()\r
\r
-void TEST_CLASS_NAME::URIScanTest8() \r
+void URIScanTest8() \r
{\r
LPCTSTR pTest = "TEST8";\r
LPCTSTR pCorrect = \r
//\r
// partial scan test\r
\r
-void TEST_CLASS_NAME::PartialScanTest1() \r
+void PartialScanTest1() \r
{\r
LPCTSTR pTest = "TEST-P1";\r
LPCTSTR pCorrect = \r
//\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
//\r
// cancelled at root\r
\r
-void TEST_CLASS_NAME::InterruptTest1() \r
+void InterruptTest1() \r
{\r
LPCTSTR pTest = "IRTEST1";\r
LPCTSTR pCorrect = \r
//\r
// cancelled at sub folder\r
\r
-void TEST_CLASS_NAME::InterruptTest2() \r
+void InterruptTest2() \r
{\r
LPCTSTR pTest = "IRTEST1";\r
LPCTSTR pCorrect = \r
//\r
// cancelled at sub folder\r
\r
-void TEST_CLASS_NAME::InterruptTest3() \r
+void InterruptTest3() \r
{\r
LPCTSTR pTest = "IRTEST1";\r
LPCTSTR pCorrect = \r
//\r
// cancelled at sub folder\r
\r
-void TEST_CLASS_NAME::InterruptTest4() \r
+void InterruptTest4() \r
{\r
LPCTSTR pTest = "IRTEST1";\r
LPCTSTR pCorrect = \r
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+#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