diff options
Diffstat (limited to 'qpdf/test_driver.cc')
-rw-r--r-- | qpdf/test_driver.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index 89dd1d02..2708285b 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -7,6 +7,7 @@ #include <qpdf/QPDFPageObjectHelper.hh> #include <qpdf/QPDFAcroFormDocumentHelper.hh> #include <qpdf/QPDFNumberTreeObjectHelper.hh> +#include <qpdf/QPDFNameTreeObjectHelper.hh> #include <qpdf/QPDFPageLabelDocumentHelper.hh> #include <qpdf/QUtil.hh> #include <qpdf/QTC.hh> @@ -1706,6 +1707,29 @@ void runtest(int n, char const* filename1, char const* arg2) << labels.at(i+1).unparse() << std::endl; } } + else if (n == 48) + { + // Test name tree. This test is crafted to work with + // name-tree.pdf + QPDFObjectHandle qtest = pdf.getTrailer().getKey("/QTest"); + QPDFNameTreeObjectHelper ntoh(qtest); + std::map<std::string, QPDFObjectHandle> ntoh_map = ntoh.getAsMap(); + for (std::map<std::string, QPDFObjectHandle>::iterator iter = + ntoh_map.begin(); + iter != ntoh_map.end(); ++iter) + { + std::cout << (*iter).first << " -> " + << (*iter).second.getStringValue() + << std::endl; + } + assert(ntoh.hasName("11 elephant")); + assert(ntoh.hasName("07 sev\xe2\x80\xa2n")); + assert(! ntoh.hasName("potato")); + QPDFObjectHandle oh; + assert(! ntoh.findObject("potato", oh)); + assert(ntoh.findObject("07 sev\xe2\x80\xa2n", oh)); + assert("seven!" == oh.getStringValue()); + } else { throw std::runtime_error(std::string("invalid test ") + |