From a88c55b602cc8f0e3de05d257f964651dec09cf2 Mon Sep 17 00:00:00 2001 From: jez_higgins <> Date: Tue, 3 Sep 2002 13:26:08 +0000 Subject: [PATCH] added some tests for SAX2DOM --- examples/SAX2DOM/SAX2DOM_test.dsp | 12 ++-- examples/SAX2DOM/SAX2DOM_test.mak | 33 ++++++----- examples/SAX2DOM/main.cpp | 2 + examples/SAX2DOM/test_SAX.cpp | 93 +++++++++++++++++++++++++++++++ examples/SAX2DOM/test_SAX.h | 7 +++ 5 files changed, 130 insertions(+), 17 deletions(-) create mode 100644 examples/SAX2DOM/test_SAX.cpp create mode 100644 examples/SAX2DOM/test_SAX.h diff --git a/examples/SAX2DOM/SAX2DOM_test.dsp b/examples/SAX2DOM/SAX2DOM_test.dsp index 24e78a83..a4f68517 100644 --- a/examples/SAX2DOM/SAX2DOM_test.dsp +++ b/examples/SAX2DOM/SAX2DOM_test.dsp @@ -118,6 +118,10 @@ SOURCE=.\test_ProcessingInstruction.cpp # End Source File # Begin Source File +SOURCE=.\test_SAX.cpp +# End Source File +# Begin Source File + SOURCE=.\test_Siblings.cpp # End Source File # Begin Source File @@ -194,6 +198,10 @@ SOURCE=.\test_ProcessingInstruction.h # End Source File # Begin Source File +SOURCE=.\test_SAX.h +# End Source File +# Begin Source File + SOURCE=.\test_Siblings.h # End Source File # Begin Source File @@ -223,10 +231,6 @@ SOURCE=.\CppUnit\framework\TestSuite.h # End Group # Begin Source File -SOURCE=..\..\..\..\lib\vc6\expat.lib -# End Source File -# Begin Source File - SOURCE=..\..\lib\SAX.lib # End Source File # Begin Source File diff --git a/examples/SAX2DOM/SAX2DOM_test.mak b/examples/SAX2DOM/SAX2DOM_test.mak index ad01af9b..2ae83d23 100644 --- a/examples/SAX2DOM/SAX2DOM_test.mak +++ b/examples/SAX2DOM/SAX2DOM_test.mak @@ -59,6 +59,7 @@ CLEAN : -@erase "$(INTDIR)\test_DOMImplementation.obj" -@erase "$(INTDIR)\test_Element.obj" -@erase "$(INTDIR)\test_ProcessingInstruction.obj" + -@erase "$(INTDIR)\test_SAX.obj" -@erase "$(INTDIR)\test_Siblings.obj" -@erase "$(INTDIR)\TestCase.obj" -@erase "$(INTDIR)\TestFailure.obj" @@ -93,9 +94,9 @@ LINK32_OBJS= \ "$(INTDIR)\TestResult.obj" \ "$(INTDIR)\TestSuite.obj" \ "$(INTDIR)\TextTestResult.obj" \ - "..\..\..\..\lib\vc6\expat.lib" \ "..\..\lib\SAX.lib" \ "..\..\lib\Utilities.lib" \ + "$(INTDIR)\test_SAX.obj" \ "..\..\SAX\Release\SAX.lib" "$(OUTDIR)\SAX2DOM_test.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) @@ -134,6 +135,7 @@ CLEAN : -@erase "$(INTDIR)\test_DOMImplementation.obj" -@erase "$(INTDIR)\test_Element.obj" -@erase "$(INTDIR)\test_ProcessingInstruction.obj" + -@erase "$(INTDIR)\test_SAX.obj" -@erase "$(INTDIR)\test_Siblings.obj" -@erase "$(INTDIR)\TestCase.obj" -@erase "$(INTDIR)\TestFailure.obj" @@ -152,13 +154,13 @@ CLEAN : "$(INTDIR)" : if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" -CPP_PROJ=/nologo /MLd /W3 /Gm /GR /GX /ZI /Od /I "..\..\\" /I "\work\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\SAX2DOM_test.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c +CPP_PROJ=/nologo /MLd /W3 /Gm /GR /GX /ZI /Od /I "..\..\\" /I "\work\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "USE_EXPAT" /Fp"$(INTDIR)\SAX2DOM_test.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c BSC32=bscmake.exe BSC32_FLAGS=/nologo /o"$(OUTDIR)\SAX2DOM_test.bsc" BSC32_SBRS= \ LINK32=link.exe -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\SAX2DOM_test.pdb" /debug /machine:I386 /out:"$(OUTDIR)\SAX2DOM_test.exe" /pdbtype:sept +LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\SAX2DOM_test.pdb" /debug /machine:I386 /out:"$(OUTDIR)\SAX2DOM_test.exe" /pdbtype:sept /libpath:"..\..\lib" /libpath:"\work\lib\vc6" LINK32_OBJS= \ "$(INTDIR)\main.obj" \ "$(INTDIR)\test_Attribute.obj" \ @@ -174,9 +176,9 @@ LINK32_OBJS= \ "$(INTDIR)\TestResult.obj" \ "$(INTDIR)\TestSuite.obj" \ "$(INTDIR)\TextTestResult.obj" \ - "..\..\..\..\lib\vc6\expat.lib" \ "..\..\lib\SAX.lib" \ - "..\..\lib\Utilities.lib" + "..\..\lib\Utilities.lib" \ + "$(INTDIR)\test_SAX.obj" "$(OUTDIR)\SAX2DOM_test.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< @@ -266,6 +268,11 @@ SOURCE=.\test_ProcessingInstruction.cpp "$(INTDIR)\test_ProcessingInstruction.obj" : $(SOURCE) "$(INTDIR)" +SOURCE=.\test_SAX.cpp + +"$(INTDIR)\test_SAX.obj" : $(SOURCE) "$(INTDIR)" + + SOURCE=.\test_Siblings.cpp "$(INTDIR)\test_Siblings.obj" : $(SOURCE) "$(INTDIR)" @@ -304,24 +311,24 @@ SOURCE=.\CppUnit\textui\TextTestResult.cpp !IF "$(CFG)" == "SAX2DOM_test - Win32 Release" "DOM - Win32 Release" : - cd "\work\JezUK\Arabica\DOM" + cd "\work\JezUK\Arabica\src\DOM" $(MAKE) /$(MAKEFLAGS) /F .\DOM.mak CFG="DOM - Win32 Release" cd "..\EXAMPLES\SAX2DOM" "DOM - Win32 ReleaseCLEAN" : - cd "\work\JezUK\Arabica\DOM" + cd "\work\JezUK\Arabica\src\DOM" $(MAKE) /$(MAKEFLAGS) /F .\DOM.mak CFG="DOM - Win32 Release" RECURSE=1 CLEAN cd "..\EXAMPLES\SAX2DOM" !ELSEIF "$(CFG)" == "SAX2DOM_test - Win32 Debug" "DOM - Win32 Debug" : - cd "\work\JezUK\Arabica\DOM" + cd "\work\JezUK\Arabica\src\DOM" $(MAKE) /$(MAKEFLAGS) /F .\DOM.mak CFG="DOM - Win32 Debug" cd "..\EXAMPLES\SAX2DOM" "DOM - Win32 DebugCLEAN" : - cd "\work\JezUK\Arabica\DOM" + cd "\work\JezUK\Arabica\src\DOM" $(MAKE) /$(MAKEFLAGS) /F .\DOM.mak CFG="DOM - Win32 Debug" RECURSE=1 CLEAN cd "..\EXAMPLES\SAX2DOM" @@ -330,24 +337,24 @@ SOURCE=.\CppUnit\textui\TextTestResult.cpp !IF "$(CFG)" == "SAX2DOM_test - Win32 Release" "SAXlib - Win32 Release" : - cd "\work\JezUK\Arabica\SAX" + cd "\work\JezUK\Arabica\src\SAX" $(MAKE) /$(MAKEFLAGS) /F .\SAX.mak CFG="SAXlib - Win32 Release" cd "..\EXAMPLES\SAX2DOM" "SAXlib - Win32 ReleaseCLEAN" : - cd "\work\JezUK\Arabica\SAX" + cd "\work\JezUK\Arabica\src\SAX" $(MAKE) /$(MAKEFLAGS) /F .\SAX.mak CFG="SAXlib - Win32 Release" RECURSE=1 CLEAN cd "..\EXAMPLES\SAX2DOM" !ELSEIF "$(CFG)" == "SAX2DOM_test - Win32 Debug" "SAXlib - Win32 Debug" : - cd "\work\JezUK\Arabica\SAX" + cd "\work\JezUK\Arabica\src\SAX" $(MAKE) /$(MAKEFLAGS) /F .\SAX.mak CFG="SAXlib - Win32 Debug" cd "..\EXAMPLES\SAX2DOM" "SAXlib - Win32 DebugCLEAN" : - cd "\work\JezUK\Arabica\SAX" + cd "\work\JezUK\Arabica\src\SAX" $(MAKE) /$(MAKEFLAGS) /F .\SAX.mak CFG="SAXlib - Win32 Debug" RECURSE=1 CLEAN cd "..\EXAMPLES\SAX2DOM" diff --git a/examples/SAX2DOM/main.cpp b/examples/SAX2DOM/main.cpp index 96b3a413..9c8a5fc2 100644 --- a/examples/SAX2DOM/main.cpp +++ b/examples/SAX2DOM/main.cpp @@ -22,6 +22,7 @@ #include "test_Element.h" #include "test_DocumentFragment.h" #include "test_Attribute.h" +#include "test_SAX.h" class TestRunner { @@ -55,6 +56,7 @@ int main(int argc, char* argv[]) runner.addTest("ElementTest", ElementTest_suite()); runner.addTest("DocumentFragmentTest", DocumentFragmentTest_suite()); runner.addTest("AttributeTest", AttrTest_suite()); + runner.addTest("SAX2DOMTest", SAXTest_suite()); runner.run(argc, argv); return 0; diff --git a/examples/SAX2DOM/test_SAX.cpp b/examples/SAX2DOM/test_SAX.cpp new file mode 100644 index 00000000..8ee6eed8 --- /dev/null +++ b/examples/SAX2DOM/test_SAX.cpp @@ -0,0 +1,93 @@ + +#pragma warning(disable: 4786 4250 4503) +#include "CppUnit/framework/TestCase.h" +#include "CppUnit/framework/TestSuite.h" +#include "CppUnit/framework/TestCaller.h" +#include +#include + +class SAXTest : public TestCase +{ + public: + SAXTest(std::string name) : + TestCase(name) + { + } // SAXTest + + void setUp() + { + } // setUp + + DOM::Document parse(std::string str) + { + std::stringstream ss; + ss << str; + + SAX::InputSource is(ss); + SAX2DOM::Parser parser; + parser.parse(is); + return parser.getDocument(); + } // parse + + void test1() + { + DOM::Element d; + DOM::Node n; + assert(d == 0); + assert(n == 0); + assert(n == d); + } // test1 + + void test2() + { + DOM::Document d = parse(""); + DOM::Element elem = d.getDocumentElement(); + assert(elem.getParentNode() == d); + assert(elem.getOwnerDocument() == d); + } // test2 + + void test3() + { + DOM::Document d = parse(""); + DOM::Element elem = d.getDocumentElement(); + assert(elem.hasAttributes() == true); + assert(elem.getAttribute("attr") == "poop"); + } // test3 + + void test4() + { + DOM::Document d = parse(""); + DOM::Element elem = static_cast >(d.getDocumentElement().getFirstChild()); + assertEquals("child", elem.getNodeName()); + assertEquals(true, elem.hasAttributes()); + assertEquals("poop", elem.getAttribute("attr")); + } // test4 + + void test8() + { + DOM::Document d = parse(""); + DOM::Element elem = d.getDocumentElement(); + + DOM::Element e2 = static_cast >(elem.cloneNode(true)); + assert(e2.getOwnerDocument() == d); + assert(e2.getParentNode() == 0); + assert(e2.hasAttributes() == true); + assert(e2.getAttribute("attr") == "poop"); + assert(e2.getFirstChild().getNodeName() == "child"); + } // test7 +}; + +TestSuite* SAXTest_suite() +{ + TestSuite *suiteOfTests = new TestSuite; + suiteOfTests->addTest(new TestCaller("test1", &SAXTest::test1)); + suiteOfTests->addTest(new TestCaller("test2", &SAXTest::test2)); + suiteOfTests->addTest(new TestCaller("test3", &SAXTest::test3)); + suiteOfTests->addTest(new TestCaller("test4", &SAXTest::test4)); +// suiteOfTests->addTest(new TestCaller("test5", &SAXTest::test5)); +// suiteOfTests->addTest(new TestCaller("test6", &SAXTest::test6)); +// suiteOfTests->addTest(new TestCaller("test7", &SAXTest::test7)); + suiteOfTests->addTest(new TestCaller("test8", &SAXTest::test8)); + return suiteOfTests; +} // MathTest_suite + diff --git a/examples/SAX2DOM/test_SAX.h b/examples/SAX2DOM/test_SAX.h new file mode 100644 index 00000000..8dcada95 --- /dev/null +++ b/examples/SAX2DOM/test_SAX.h @@ -0,0 +1,7 @@ +#ifndef test_SAX_H +#define test_SAX_H + +TestSuite* SAXTest_suite(); + +#endif +