gbookmarkfile: Fix error reporting with unexpected nesting of elements376234f9b25b220ff58dafbc4ba6bfcfc37b6f34207/head
commit376234f9b25b220ff58dafbc4ba6bfcfc37b6f34
authorPhilip Withnall <withnall@endlessm.com>
Mon, 30 Jul 2018 18:10:11 +0000 (30 19:10 +0100)
committerPhilip Withnall <withnall@endlessm.com>
Mon, 30 Jul 2018 20:59:26 +0000 (30 21:59 +0100)
treef89fd45b389fa7399f477b6dd8811ffd02bd3371
parent4127c84c3a8461dc456cbf4c60dc98934823cec2
gbookmarkfile: Fix error reporting with unexpected nesting of elements

The parser state machine for bookmark files did not handle unexpected
nesting of elements, such as a <bookmark> element inside a <title>
element — it would print a critical warning rather than returning a
GError.

Fix that, and add various unit tests for it. The set of tests includes
various other general markup tests as provided by Jussi Judin.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://gitlab.gnome.org/GNOME/glib/issues/1035
23 files changed:
glib/gbookmarkfile.c
glib/tests/Makefile.am
glib/tests/bookmarks/fail-18.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-19.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-20.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-21.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-22.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-23.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-24.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-25.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-26.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-27.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-28.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-29.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-30.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-31.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-32.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-33.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-34.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-35.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-36.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-37.xbel [new file with mode: 0644]
glib/tests/bookmarks/fail-38.xbel [new file with mode: 0644]