From 9233e8605512d8ff887afbe6e55dc3db78e55ca9 Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Wed, 21 Oct 2009 20:46:42 +0000 Subject: tests: Added lang() tests git-svn-id: http://pugixml.googlecode.com/svn/trunk@174 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_xpath_functions.cpp | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'tests/test_xpath_functions.cpp') diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index e4430f3..d033ab4 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -185,5 +185,35 @@ TEST(xpath_boolean_false) CHECK_XPATH_FAIL("false(1)"); } +TEST_XML(xpath_boolean_lang, "") +{ + xml_node c; + + // lang with 0 arguments + CHECK_XPATH_FAIL("lang()"); + + // lang with 1 argument, no language + CHECK_XPATH_BOOLEAN(c, "lang('en')", false); + CHECK_XPATH_BOOLEAN(doc.child("foo"), "lang('en')", false); + CHECK_XPATH_BOOLEAN(doc.child("foo"), "lang('')", false); + CHECK_XPATH_BOOLEAN(doc.child("foo").child("bar"), "lang('en')", false); + + // lang with 1 argument, same language/prefix + CHECK_XPATH_BOOLEAN(doc.child("node"), "lang('en')", true); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child"), "lang('ru-uk')", true); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child"), "lang('ru')", true); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child").child("subchild"), "lang('ru')", true); + + // lang with 1 argument, different language/prefix + CHECK_XPATH_BOOLEAN(doc.child("node"), "lang('')", false); + CHECK_XPATH_BOOLEAN(doc.child("node"), "lang('e')", false); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child"), "lang('en')", false); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child"), "lang('ru-gb')", false); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child"), "lang('r')", false); + CHECK_XPATH_BOOLEAN(doc.child("node").child("child").child("subchild"), "lang('en')", false); + + // lang with 2 arguments + CHECK_XPATH_FAIL("lang(1, 2)"); +} + // $$$: string value of 123789100 should be 123789100 (?) -// $$$: type -> node set conversion seems to be guarded via assert instead of exception -- cgit v1.2.3