X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ftest_html_parser.cpp;h=9840c1d30bad32a34560d152583cc58aa44bed13;hb=bb6b58cbec0e41a8ba2403e540185e77882e8741;hp=5659152d66a6c9f3789e2b52b2247841544ddbb0;hpb=6dcfe679a15fd81aced28675b3ef91619165ae30;p=metaproxy-moved-to-github.git diff --git a/src/test_html_parser.cpp b/src/test_html_parser.cpp index 5659152..9840c1d 100644 --- a/src/test_html_parser.cpp +++ b/src/test_html_parser.cpp @@ -42,16 +42,20 @@ public: void openTagStart(const char *tag, int tag_len) { out += "<"; out.append(tag, tag_len); - } - + } + void attribute(const char *tag, int tag_len, const char *attr, int attr_len, - const char *value, int val_len) { + const char *value, int val_len, const char *sep) { out += " "; out.append(attr, attr_len); - out += "=\""; - out.append(value, val_len); - out += "\""; + if (value) + { + out += "="; + out += sep; + out.append(value, val_len); + out += sep; + } } void anyTagEnd(const char *tag, int tag_len, int close_it) { if (close_it) @@ -67,29 +71,31 @@ public: } }; - BOOST_AUTO_TEST_CASE( test_html_parser_1 ) { try { mp::HTMLParser hp; - const char* html = + const char* html = "some text" "
"; - const char* expected = - "some text" - "
"; + const char* expected = + "some text" + "
"; MyEvent e; - hp.set_verbose(1); + hp.set_verbose(0); hp.parse(e, html); - std::cout << "Expected" << std::endl; - std::cout << expected << std::endl; - std::cout << "Got" << std::endl; - std::cout << e.out << std::endl; BOOST_CHECK_EQUAL(std::string(expected), e.out); + if (std::string(expected) != e.out) + { + std::cout << "Expected" << std::endl; + std::cout << expected << std::endl; + std::cout << "Got" << std::endl; + std::cout << e.out << std::endl; + } } - catch (std::exception & e) + catch (std::exception & e) { std::cout << e.what(); std::cout << std::endl; @@ -117,15 +123,17 @@ BOOST_AUTO_TEST_CASE( test_html_parser_2 ) const char* expected = html; MyEvent e; - hp.set_verbose(1); + hp.set_verbose(0); hp.parse(e, html); - std::cout << "Expected" << std::endl; - std::cout << expected << std::endl; - std::cout << "Got" << std::endl; - std::cout << e.out << std::endl; - BOOST_CHECK_EQUAL(std::string(expected), e.out); + if (std::string(expected) != e.out) + { + std::cout << "Expected" << std::endl; + std::cout << expected << std::endl; + std::cout << "Got" << std::endl; + std::cout << e.out << std::endl; + } } catch (std::exception & e) { @@ -152,15 +160,17 @@ BOOST_AUTO_TEST_CASE( test_html_parser_3 ) const char* expected = html; MyEvent e; - hp.set_verbose(1); + hp.set_verbose(0); hp.parse(e, html); - std::cout << "Expected" << std::endl; - std::cout << expected << std::endl; - std::cout << "Got" << std::endl; - std::cout << e.out << std::endl; - BOOST_CHECK_EQUAL(std::string(expected), e.out); + if (std::string(expected) != e.out) + { + std::cout << "Expected" << std::endl; + std::cout << expected << std::endl; + std::cout << "Got" << std::endl; + std::cout << e.out << std::endl; + } } catch (std::exception & e) { @@ -170,37 +180,67 @@ BOOST_AUTO_TEST_CASE( test_html_parser_3 ) } } -#if 0 -// null ptr exception BOOST_AUTO_TEST_CASE( test_html_parser_4 ) { try { mp::HTMLParser hp; const char* html = - "<\"?xml version=\"1.0\" strandalone=\"no\"?>\n" - ""; + "\n" + ""; const char* expected = html; MyEvent e; - hp.set_verbose(1); + hp.set_verbose(0); hp.parse(e, html); - std::cout << "Expected" << std::endl; - std::cout << expected << std::endl; - std::cout << "Got" << std::endl; - std::cout << e.out << std::endl; + BOOST_CHECK_EQUAL(std::string(expected), e.out); + if (std::string(expected) != e.out) + { + std::cout << "Expected" << std::endl; + std::cout << expected << std::endl; + std::cout << "Got" << std::endl; + std::cout << e.out << std::endl; + } + } + catch (std::exception & e) + { + std::cout << e.what(); + std::cout << std::endl; + BOOST_CHECK (false); + } +} + +BOOST_AUTO_TEST_CASE( test_html_parser_5 ) +{ + try + { + mp::HTMLParser hp; + const char* html = + ""; + + const char* expected = html; + MyEvent e; + hp.set_verbose(0); + hp.parse(e, html); BOOST_CHECK_EQUAL(std::string(expected), e.out); + if (std::string(expected) != e.out) + { + std::cout << "Expected" << std::endl; + std::cout << expected << std::endl; + std::cout << "Got" << std::endl; + std::cout << e.out << std::endl; + } } - catch (std::exception & e) + catch (std::exception & e) { std::cout << e.what(); std::cout << std::endl; BOOST_CHECK (false); } } -#endif + /* * Local variables: