X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ftest_html_parser.cpp;h=5ba7e5a29b39478ce52af1b63b71c1c00b8552e6;hb=dbcf08a20fbdaf78c823c365b77b5876a07e8de7;hp=6f5c134464cb7f65bcef93375f66199cb9939882;hpb=288111986392ffbd733d71cd964f49437b899bdb;p=metaproxy-moved-to-github.git diff --git a/src/test_html_parser.cpp b/src/test_html_parser.cpp index 6f5c134..5ba7e5a 100644 --- a/src/test_html_parser.cpp +++ b/src/test_html_parser.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2013 Index Data + Copyright (C) Index Data Metaproxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -49,10 +49,13 @@ public: const char *value, int val_len, const char *sep) { out += " "; out.append(attr, attr_len); - out += "="; - out += sep; - out.append(value, val_len); - out += sep; + 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) @@ -80,14 +83,17 @@ BOOST_AUTO_TEST_CASE( test_html_parser_1 ) "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) { @@ -102,7 +108,7 @@ BOOST_AUTO_TEST_CASE( test_html_parser_2 ) try { mp::HTMLParser hp; - const char* html = + const char* html = "\n" "\n" " \n" @@ -117,17 +123,19 @@ 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) + catch (std::exception & e) { std::cout << e.what(); std::cout << std::endl; @@ -152,17 +160,19 @@ 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) + catch (std::exception & e) { std::cout << e.what(); std::cout << std::endl; @@ -170,37 +180,129 @@ 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 + +BOOST_AUTO_TEST_CASE( test_html_parser_6 ) +{ + 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) + { + std::cout << e.what(); + std::cout << std::endl; + BOOST_CHECK (false); + } +} + +BOOST_AUTO_TEST_CASE( test_html_parser_7 ) +{ + try + { + mp::HTMLParser hp; + const char* html = + "" + "\nx=2;\n"; + + 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) + { + std::cout << e.what(); + std::cout << std::endl; + BOOST_CHECK (false); + } +} + /* * Local variables: