diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2013-10-16 12:57:45 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2013-10-17 21:38:34 +0200 |
commit | 86501dd6e0249c4291787d7cbaa88e84370a6c3e (patch) | |
tree | e2b461dcc4526111f917d102b5324c79024e5725 /sax | |
parent | dffb0782bb40337e32f3a22b3827b1d47e0acd72 (diff) |
sax: add unit test for FastAttributeList
Change-Id: Ie87c80383991dca84b4f6e2074c5c53567ded0b6
Diffstat (limited to 'sax')
-rw-r--r-- | sax/CppunitTest_sax_attributes.mk | 27 | ||||
-rw-r--r-- | sax/Module_sax.mk | 1 | ||||
-rw-r--r-- | sax/qa/cppunit/attributes.cxx | 83 |
3 files changed, 111 insertions, 0 deletions
diff --git a/sax/CppunitTest_sax_attributes.mk b/sax/CppunitTest_sax_attributes.mk new file mode 100644 index 000000000000..eee7f06380fc --- /dev/null +++ b/sax/CppunitTest_sax_attributes.mk @@ -0,0 +1,27 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_CppunitTest_CppunitTest,sax_attributes)) + +$(eval $(call gb_CppunitTest_add_exception_objects,sax_attributes, \ + sax/qa/cppunit/attributes \ +)) + +$(eval $(call gb_CppunitTest_use_libraries,sax_attributes, \ + cppu \ + sal \ + sax \ + $(gb_UWINAPI) \ +)) + +$(eval $(call gb_CppunitTest_use_sdk_api,sax_attributes)) + +$(eval $(call gb_CppunitTest_use_ure,sax_attributes)) + +# vim: set noet sw=4 ts=4: diff --git a/sax/Module_sax.mk b/sax/Module_sax.mk index 4352282ff3ea..63c993a46db5 100644 --- a/sax/Module_sax.mk +++ b/sax/Module_sax.mk @@ -18,6 +18,7 @@ $(eval $(call gb_Module_add_targets,sax,\ $(eval $(call gb_Module_add_check_targets,sax,\ CppunitTest_sax \ + CppunitTest_sax_attributes \ CppunitTest_sax_parser \ )) diff --git a/sax/qa/cppunit/attributes.cxx b/sax/qa/cppunit/attributes.cxx new file mode 100644 index 000000000000..b0f99b0e7856 --- /dev/null +++ b/sax/qa/cppunit/attributes.cxx @@ -0,0 +1,83 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sal/types.h> + +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/plugin/TestPlugIn.h> + +#include <sax/fastattribs.hxx> + +using namespace css; +using namespace css::xml; + +namespace { + +class AttributesTest: public CppUnit::TestFixture +{ + bool mbException; + +public: + void test(); + + CPPUNIT_TEST_SUITE( AttributesTest ); + CPPUNIT_TEST( test ); + CPPUNIT_TEST_SUITE_END(); +}; + +void AttributesTest::test() +{ + sax_fastparser::FastAttributeList aAttributeList( NULL ); + aAttributeList.add(1, "1"); + aAttributeList.add(2, OString("2")); + + // We can't test getValueToken() and getOptionalValueToken() + // without XFastTokenHandler :-( + // Uncomment to get segmantation fault: + // aAttributeList.getOptionalValueToken(1, 0); + // aAttributeList.getValueToken(2); + + CPPUNIT_ASSERT( aAttributeList.hasAttribute(1) ); + CPPUNIT_ASSERT( !aAttributeList.hasAttribute(3) ); + + CPPUNIT_ASSERT_EQUAL( aAttributeList.getOptionalValue(2), OUString("2") ); + CPPUNIT_ASSERT_EQUAL( aAttributeList.getOptionalValue(3), OUString() ); + + CPPUNIT_ASSERT_EQUAL( aAttributeList.getValue(1), OUString("1") ); + mbException = false; + + try { aAttributeList.getValue(3); } + catch (const sax::SAXException& ) + { + mbException = true; + } + CPPUNIT_ASSERT( mbException ); + + aAttributeList.addUnknown("a", "a"); + aAttributeList.addUnknown("b", "b", "b"); + aAttributeList.addUnknown("c", "c"); + CPPUNIT_ASSERT_EQUAL( 3, aAttributeList.getUnknownAttributes().getLength() ); + + CPPUNIT_ASSERT_EQUAL( 2, aAttributeList.getFastAttributes().getLength() ); + + aAttributeList.clear(); + CPPUNIT_ASSERT( !aAttributeList.hasAttribute(1) ); + CPPUNIT_ASSERT_EQUAL( 0, aAttributeList.getFastAttributes().getLength() ); + aAttributeList.addUnknown("c", "c"); + CPPUNIT_ASSERT_EQUAL( 1, aAttributeList.getUnknownAttributes().getLength() ); +} + +CPPUNIT_TEST_SUITE_REGISTRATION( AttributesTest ); + +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |