#ifndef ARABICA_TEST_WHITESPACE_STRIPPER_HPP #define ARABICA_TEST_WHITESPACE_STRIPPER_HPP #include #include #include #include #include #include #include #include "../CppUnit/framework/TestCase.h" #include "../CppUnit/framework/TestSuite.h" #include "../CppUnit/framework/TestCaller.h" template class WhitespaceStripperTest : public TestCase { typedef string_adaptor SA; public: WhitespaceStripperTest(std::string name) : TestCase(name) { } // WhitespaceStripperTest void setUp() { } // setUp void testNoStrip() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::PYXWriter writer(o, parser); writer.parse(*source("

Woo baby hooray

")); assertEquals("(test\n(p\n- Woo baby hooray \n)p\n)test\n", o.str()); } // testNoStrip void testStripLeading() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::WhitespaceStripper stripper(parser); Arabica::SAX::PYXWriter writer(o, stripper); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); } // testStripLeading void testStripTrailing() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::WhitespaceStripper stripper(parser); Arabica::SAX::PYXWriter writer(o, stripper); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo

")); assertEquals("(test\n(p\n-Woo\n)p\n)test\n", o.str()); } // testStripTrailing void testStripMid() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::WhitespaceStripper stripper(parser); Arabica::SAX::PYXWriter writer(o, stripper); writer.parse(*source("

Woo yea

")); assertEquals("(test\n(p\n-Woo yea\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo yea

")); assertEquals("(test\n(p\n-Woo yea\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo yea

")); assertEquals("(test\n(p\n-Woo yea\n)p\n)test\n", o.str()); } // testStripMid void testStripMid2() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::WhitespaceStripper stripper(parser); Arabica::SAX::PYXWriter writer(o, stripper); writer.parse(*source("

Woo yea man

")); assertEquals("(test\n(p\n-Woo yea man\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo yea man

")); assertEquals("(test\n(p\n-Woo yea man\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo yea man

")); assertEquals("(test\n(p\n-Woo yea man\n)p\n)test\n", o.str()); o.str(""); writer.parse(*source("

Woo yea man

")); assertEquals("(test\n(p\n-Woo yea man\n)p\n)test\n", o.str()); } // testStripMid2 void testStrip() { std::ostringstream o; Arabica::SAX::XMLReader parser; Arabica::SAX::WhitespaceStripper stripper(parser); Arabica::SAX::PYXWriter writer(o, stripper); writer.parse(*source("

Woo baby hooray

")); assertEquals("(test\n(p\n-Woo baby hooray\n)p\n)test\n", o.str()); } // testStrip private: std::auto_ptr > source(const std::string& str) { std::auto_ptr ss(new std::stringstream()); (*ss) << str; return std::auto_ptr >(new Arabica::SAX::InputSource(ss)); } // source }; // WhitespaceStripperTest template TestSuite* WhitespaceStripper_test_suite() { TestSuite *suiteOfTests = new TestSuite; suiteOfTests->addTest(new TestCaller >("testNoStrip", &WhitespaceStripperTest::testNoStrip)); suiteOfTests->addTest(new TestCaller >("testStripLeading", &WhitespaceStripperTest::testStripLeading)); suiteOfTests->addTest(new TestCaller >("testStripTrailing", &WhitespaceStripperTest::testStripTrailing)); suiteOfTests->addTest(new TestCaller >("testStripMid", &WhitespaceStripperTest::testStripMid)); suiteOfTests->addTest(new TestCaller >("testStripMid2", &WhitespaceStripperTest::testStripMid2)); suiteOfTests->addTest(new TestCaller >("testStrip", &WhitespaceStripperTest::testStrip)); return suiteOfTests; } // WhitespaceStripperTest_suite #endif