summaryrefslogtreecommitdiff
path: root/tests/test_dom_modify.cpp
AgeCommit message (Collapse)Author
2014-11-20Fix node_declaration copying with empty nameArseny Kapoulkine
node_copy_string relied on the fact that target node had an empty name and value. Normally this is a safe assumption (and a good one to make since it makes copying faster), however it was not checked and there was one case when it did not hold. Since we're reusing the logic for inserting nodes, newly inserted declaration nodes had the name set automatically to xml, which in our case violates the assumption and is counter-productive since we'll override the name right after setting it. For now the best solution is to do the same insertion manually - that results in some code duplication that we can refactor later (same logic is partially shared by _move variants anyway so on a level duplicating is not that bad).
2014-11-17Rename xml_document::load to load_stringArseny Kapoulkine
This should completely eliminate the confusion between load and load_file. Of course, for compatibility reasons we have to preserve the old variant - it will be deprecated in a future version and subsequently removed.
2014-11-02Fix undefined behavior while calling memcpyArseny Kapoulkine
Calling memcpy(x, 0, 0) is technically undefined (although it should usually be a no-op).
2014-10-25Fix node copying for some out of memory casesArseny Kapoulkine
A page can fail to allocate during attribute creation; this case was not previously handled. git-svn-id: https://pugixml.googlecode.com/svn/trunk@1080 99668b35-9821-0410-8761-19e4c4f06640
2014-10-23tests: Add more tests for better coverageArseny Kapoulkine
More tests for out-of-memory and other edge conditions git-svn-id: https://pugixml.googlecode.com/svn/trunk@1075 99668b35-9821-0410-8761-19e4c4f06640
2014-10-23tests: Improve test coverageArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1074 99668b35-9821-0410-8761-19e4c4f06640
2014-10-03tests: Fix MSVC6 compilationArseny Kapoulkine
Also fixes PUGIXML_NO_STL compilation and makes it possible to build with any version of new Windows SDK. git-svn-id: https://pugixml.googlecode.com/svn/trunk@1044 99668b35-9821-0410-8761-19e4c4f06640
2014-10-02tests: Add a test for out-of-memory during copyArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1040 99668b35-9821-0410-8761-19e4c4f06640
2014-10-02tests: Add missing tests to increase code coverageArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1038 99668b35-9821-0410-8761-19e4c4f06640
2014-10-01tests: Add tests for copyless copy and related potential bugsArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1033 99668b35-9821-0410-8761-19e4c4f06640
2014-09-28tests: Add a test for stackless copyArseny Kapoulkine
This test has previously caused a stack overflow on x86/MSVC. git-svn-id: https://pugixml.googlecode.com/svn/trunk@1028 99668b35-9821-0410-8761-19e4c4f06640
2014-08-10tests: Add tests for node movementArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1003 99668b35-9821-0410-8761-19e4c4f06640
2014-02-11Implement document fragment parsing.Arseny Kapoulkine
Introduce a notable behavior change in default parsing mode: documents without a document element node are now considered invalid. This is technically a breaking change, however the amount of documents it affects is very small, all parsed data still persists, and lack of this check results in very confusing behavior in a number of cases. In order to be able to parse documents without an element node, a fragment parsing flag is introduced. Parsing a buffer in fragment mode treats the buffer as a fragment of a valid XML. As a consequence, top-level PCDATA is added to the tree; additionally, there are no restrictions on the number of nodes -- so documents without a document element are considered valid. Due to the way parsing works internally, load_buffer_inplace occasionally can not preserve the document contents if it's parsed in a fragment mode. While unfortunate, this problem is fundamental; since the use case is relatively obscure, hopefully documenting this shortcoming will be enough. git-svn-id: https://pugixml.googlecode.com/svn/trunk@980 99668b35-9821-0410-8761-19e4c4f06640
2014-02-08Implement long long support if PUGIXML_HAS_LONG_LONG is defined ↵Arseny Kapoulkine
(autodetection is not implemented yet) git-svn-id: http://pugixml.googlecode.com/svn/trunk@962 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Compatibility fixes (fixed warnings in gcc, msvc7, fixed errors in bcc, cw, ↵arseny.kapoulkine@gmail.com
msvc6) git-svn-id: http://pugixml.googlecode.com/svn/trunk@939 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07tests: Added append_buffer testsarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@937 99668b35-9821-0410-8761-19e4c4f06640
2010-12-19Enabled many additional GCC warnings (most notably -Wshadow and ↵arseny.kapoulkine
-Wold-style-cast), fixed the code accordingly git-svn-id: http://pugixml.googlecode.com/svn/trunk@800 99668b35-9821-0410-8761-19e4c4f06640
2010-10-26Added xml_document::reset, added append/prepend/insert child overloads for ↵arseny.kapoulkine
elements (with explicit name) git-svn-id: http://pugixml.googlecode.com/svn/trunk@779 99668b35-9821-0410-8761-19e4c4f06640
2010-10-19Added prepend_attribute, prepend_child and prepend_copy functionsarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@769 99668b35-9821-0410-8761-19e4c4f06640
2010-09-26tests: Added node_doctype and parse_doctype testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@757 99668b35-9821-0410-8761-19e4c4f06640
2010-08-04tests: Fixed tests for wchar_t mode, added dummy std::cout/wcout usage for ↵arseny.kapoulkine
MSVC in order to create locales beforehand (avoids memory leaks during tests), minor additional test fixes git-svn-id: http://pugixml.googlecode.com/svn/trunk@629 99668b35-9821-0410-8761-19e4c4f06640
2010-08-04tests: Added even more tests for better code coveragearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@627 99668b35-9821-0410-8761-19e4c4f06640
2010-08-03tests: Preparations for custom new/delete (leak detection)arseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@620 99668b35-9821-0410-8761-19e4c4f06640
2010-08-02tests: More miscellaneous testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@619 99668b35-9821-0410-8761-19e4c4f06640
2010-07-19Set svn:eol-style to native for all text filesarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@607 99668b35-9821-0410-8761-19e4c4f06640
2010-07-07tests: Minor fixarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@573 99668b35-9821-0410-8761-19e4c4f06640
2010-07-07remove_child and remove_attribute now return operation resultarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@572 99668b35-9821-0410-8761-19e4c4f06640
2010-06-13Internal XML parsing error handling is done via setjmp/longjmp, all ↵arseny.kapoulkine
allocation errors are now handled correctly (parser returns status_out_of_memory, modification functions return errors); added tests for some out of memory situations git-svn-id: http://pugixml.googlecode.com/svn/trunk@520 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12Declaration nodes improvements (they now automatically get name "xml", they ↵arseny.kapoulkine
can't be inserted as a non-document child, document saving prints declaration only if there is none present in the document) git-svn-id: http://pugixml.googlecode.com/svn/trunk@517 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12Refactored PI/declaration parsing, now non top-level declarations result in ↵arseny.kapoulkine
parsing errors git-svn-id: http://pugixml.googlecode.com/svn/trunk@515 99668b35-9821-0410-8761-19e4c4f06640
2010-05-23tests: Minor addition to attribute value modification testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@443 99668b35-9821-0410-8761-19e4c4f06640
2010-05-20as_* functions now all use strto*/wcsto* functions; this unifies the ↵arseny.kapoulkine
behavior and fixes large unsigned integer parsing in as_uint git-svn-id: http://pugixml.googlecode.com/svn/trunk@438 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10Added more testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@407 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10Added more testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@406 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10Reworked DOM memory allocation scheme (name/value allocations use the same ↵arseny.kapoulkine
pages as node/attribute structures, pages are now deallocated when completely free) git-svn-id: http://pugixml.googlecode.com/svn/trunk@401 99668b35-9821-0410-8761-19e4c4f06640
2010-05-06Integrated changes from unicode branch to trunkarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@383 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: More tree modification testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@159 99668b35-9821-0410-8761-19e4c4f06640
2009-10-12tests: More DOM modification testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@150 99668b35-9821-0410-8761-19e4c4f06640
2009-10-11tests: Initial tree modification testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@148 99668b35-9821-0410-8761-19e4c4f06640