diff options
Diffstat (limited to 'Swiften/Parser/UnitTest/AttributeMapTest.cpp')
| -rw-r--r-- | Swiften/Parser/UnitTest/AttributeMapTest.cpp | 157 | 
1 files changed, 87 insertions, 70 deletions
| diff --git a/Swiften/Parser/UnitTest/AttributeMapTest.cpp b/Swiften/Parser/UnitTest/AttributeMapTest.cpp index d6c3c01..d9335c1 100644 --- a/Swiften/Parser/UnitTest/AttributeMapTest.cpp +++ b/Swiften/Parser/UnitTest/AttributeMapTest.cpp @@ -1,7 +1,7 @@  /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010 Isode Limited. + * All rights reserved. + * See the COPYING file for more information.   */  #include <cppunit/extensions/HelperMacros.h> @@ -13,73 +13,90 @@ using namespace Swift;  class AttributeMapTest : public CppUnit::TestFixture  { -		CPPUNIT_TEST_SUITE(AttributeMapTest); -		CPPUNIT_TEST(testGetAttribute_Namespaced); -		CPPUNIT_TEST(testGetBoolAttribute_True); -		CPPUNIT_TEST(testGetBoolAttribute_1); -		CPPUNIT_TEST(testGetBoolAttribute_False); -		CPPUNIT_TEST(testGetBoolAttribute_0); -		CPPUNIT_TEST(testGetBoolAttribute_Invalid); -		CPPUNIT_TEST(testGetBoolAttribute_UnknownWithDefaultTrue); -		CPPUNIT_TEST(testGetBoolAttribute_UnknownWithDefaultFalse); -		CPPUNIT_TEST_SUITE_END(); - -	public: -		void testGetAttribute_Namespaced() { -			AttributeMap testling; -			testling.addAttribute("lang", "", "nl"); -			testling.addAttribute("lang", "http://www.w3.org/XML/1998/namespace", "en"); -			testling.addAttribute("lang", "", "fr"); - -			CPPUNIT_ASSERT_EQUAL(std::string("en"), testling.getAttribute("lang", "http://www.w3.org/XML/1998/namespace")); -		} - -		void testGetBoolAttribute_True() { -			AttributeMap testling; -			testling.addAttribute("foo", "", "true"); - -			CPPUNIT_ASSERT(testling.getBoolAttribute("foo")); -		} - -		void testGetBoolAttribute_1() { -			AttributeMap testling; -			testling.addAttribute("foo", "", "1"); - -			CPPUNIT_ASSERT(testling.getBoolAttribute("foo")); -		} - -		void testGetBoolAttribute_False() { -			AttributeMap testling; -			testling.addAttribute("foo", "", "false"); - -			CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); -		} - -		void testGetBoolAttribute_0() { -			AttributeMap testling; -			testling.addAttribute("foo", "", "0"); - -			CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); -		} - -		void testGetBoolAttribute_Invalid() { -			AttributeMap testling; -			testling.addAttribute("foo", "", "bla"); - -			CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); -		} - -		void testGetBoolAttribute_UnknownWithDefaultTrue() { -			AttributeMap testling; - -			CPPUNIT_ASSERT(testling.getBoolAttribute("foo", true)); -		} - -		void testGetBoolAttribute_UnknownWithDefaultFalse() { -			AttributeMap testling; - -			CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", false)); -		} +        CPPUNIT_TEST_SUITE(AttributeMapTest); +        CPPUNIT_TEST(testGetAttribute_Namespaced); +        CPPUNIT_TEST(testGetAttribute_Namespaced_Prefix); +        CPPUNIT_TEST(testGetBoolAttribute_True); +        CPPUNIT_TEST(testGetBoolAttribute_1); +        CPPUNIT_TEST(testGetBoolAttribute_False); +        CPPUNIT_TEST(testGetBoolAttribute_0); +        CPPUNIT_TEST(testGetBoolAttribute_Invalid); +        CPPUNIT_TEST(testGetBoolAttribute_UnknownWithDefaultTrue); +        CPPUNIT_TEST(testGetBoolAttribute_UnknownWithDefaultFalse); +        CPPUNIT_TEST_SUITE_END(); + +    public: +        void testGetAttribute_Namespaced() { +            AttributeMap testling; +            testling.addAttribute("lang", "", "nl"); +            testling.addAttribute("lang", "http://www.w3.org/XML/1998/namespace", "en"); +            testling.addAttribute("lang", "", "fr"); + +            CPPUNIT_ASSERT_EQUAL(std::string("en"), testling.getAttribute("lang", "http://www.w3.org/XML/1998/namespace")); +        } + +        void testGetAttribute_Namespaced_Prefix() { +            AttributeMap testling; +            testling.addAttribute("lang", "", "prefix", "nl"); +            testling.addAttribute("lang", "http://www.w3.org/XML/1998/namespace", "prefix", "en"); +            testling.addAttribute("lang", "", "prefix", "fr"); + +            CPPUNIT_ASSERT_EQUAL(std::string("en"), testling.getAttribute("lang", "http://www.w3.org/XML/1998/namespace")); +            const auto& entries = testling.getEntries(); +            auto it = std::find_if(entries.begin(), entries.end(), [](const AttributeMap::Entry& e) { +                return e.getValue() == "en"; +            }); +            const bool found = it != entries.end(); +            CPPUNIT_ASSERT_EQUAL(true, found); +            CPPUNIT_ASSERT_EQUAL(std::string("prefix"), it->getAttribute().getPrefix()); +        } + +        void testGetBoolAttribute_True() { +            AttributeMap testling; +            testling.addAttribute("foo", "", "true"); + +            CPPUNIT_ASSERT(testling.getBoolAttribute("foo")); +        } + +        void testGetBoolAttribute_1() { +            AttributeMap testling; +            testling.addAttribute("foo", "", "1"); + +            CPPUNIT_ASSERT(testling.getBoolAttribute("foo")); +        } + +        void testGetBoolAttribute_False() { +            AttributeMap testling; +            testling.addAttribute("foo", "", "false"); + +            CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); +        } + +        void testGetBoolAttribute_0() { +            AttributeMap testling; +            testling.addAttribute("foo", "", "0"); + +            CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); +        } + +        void testGetBoolAttribute_Invalid() { +            AttributeMap testling; +            testling.addAttribute("foo", "", "bla"); + +            CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", true)); +        } + +        void testGetBoolAttribute_UnknownWithDefaultTrue() { +            AttributeMap testling; + +            CPPUNIT_ASSERT(testling.getBoolAttribute("foo", true)); +        } + +        void testGetBoolAttribute_UnknownWithDefaultFalse() { +            AttributeMap testling; + +            CPPUNIT_ASSERT(!testling.getBoolAttribute("foo", false)); +        }  };  CPPUNIT_TEST_SUITE_REGISTRATION(AttributeMapTest); | 
 Swift
 Swift