Esempio n. 1
0
		void testParse() {
			PayloadsParserTester parser;
			CPPUNIT_ASSERT(parser.parse(
				"<query xmlns='jabber:iq:roster'>"
				"	<item jid='*****@*****.**' name='Foo @ Bar' subscription='from' ask='subscribe'>"
				"		<group>Group 1</group>"
				"		<group>Group 2</group>"
				"	</item>"
				" <item jid='*****@*****.**' name='Baz'/>"
				"</query>"));

			RosterPayload* payload = dynamic_cast<RosterPayload*>(parser.getPayload().get());

			CPPUNIT_ASSERT(!payload->getVersion());
			const RosterPayload::RosterItemPayloads& items = payload->getItems();

			CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), items.size());

			CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), items[0].getJID());
			CPPUNIT_ASSERT_EQUAL(std::string("Foo @ Bar"), items[0].getName());
			CPPUNIT_ASSERT_EQUAL(RosterItemPayload::From, items[0].getSubscription());
			CPPUNIT_ASSERT(items[0].getSubscriptionRequested());
			CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), items[0].getGroups().size());
			CPPUNIT_ASSERT_EQUAL(std::string("Group 1"), items[0].getGroups()[0]);
			CPPUNIT_ASSERT_EQUAL(std::string("Group 2"), items[0].getGroups()[1]);

			CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), items[1].getJID());
			CPPUNIT_ASSERT_EQUAL(std::string("Baz"), items[1].getName());
			CPPUNIT_ASSERT_EQUAL(RosterItemPayload::None, items[1].getSubscription());
			CPPUNIT_ASSERT(!items[1].getSubscriptionRequested());
			CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), items[1].getGroups().size());
		}
Esempio n. 2
0
        void testParse_Results() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse(
                    "<query xmlns=\"jabber:iq:search\">"
                        "<item jid=\"[email protected]\">"
                            "<first>Juliet</first>"
                            "<last>Capulet</last>"
                            "<nick>JuliC</nick>"
                            "<email>[email protected]</email>"
                        "</item>"
                        "<item jid=\"[email protected]\">"
                            "<first>Tybalt</first>"
                            "<last>Capulet</last>"
                            "<nick>ty</nick>"
                            "<email>[email protected]</email>"
                        "</item>"
                    "</query>"
                ));

            SearchPayload::ref payload = parser.getPayload<SearchPayload>();
            CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(payload->getItems().size()));
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), payload->getItems()[0].jid);
            CPPUNIT_ASSERT_EQUAL(std::string("Juliet"), payload->getItems()[0].first);
            CPPUNIT_ASSERT_EQUAL(std::string("Capulet"), payload->getItems()[0].last);
            CPPUNIT_ASSERT_EQUAL(std::string("JuliC"), payload->getItems()[0].nick);
            CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), payload->getItems()[0].email);
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), payload->getItems()[1].jid);
        }
Esempio n. 3
0
        void testParse() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse(
                "<securitylabel xmlns=\"urn:xmpp:sec-label:0\">"
                    "<displaymarking fgcolor=\"black\" bgcolor=\"red\">SECRET</displaymarking>"
                    "<label>"
                        "<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel>"
                    "</label>"
                    "<equivalentlabel>"
                        "<icismlabel xmlns=\"http://example.gov/IC-ISM/0\" classification=\"S\" ownerProducer=\"USA\" disseminationControls=\"FOUO\"/>"
                    "</equivalentlabel>"
                    "<equivalentlabel>"
                        "<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MRUCAgD9DA9BcXVhIChvYnNvbGV0ZSk=</esssecuritylabel>"
                    "</equivalentlabel>"
                "</securitylabel>"));

            SecurityLabel* payload = dynamic_cast<SecurityLabel*>(parser.getPayload().get());
            CPPUNIT_ASSERT_EQUAL(std::string("SECRET"), payload->getDisplayMarking());
            CPPUNIT_ASSERT_EQUAL(std::string("black"), payload->getForegroundColor());
            CPPUNIT_ASSERT_EQUAL(std::string("red"), payload->getBackgroundColor());
            CPPUNIT_ASSERT_EQUAL(std::string("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel>"), payload->getLabel());
            CPPUNIT_ASSERT_EQUAL(std::string("<icismlabel classification=\"S\" disseminationControls=\"FOUO\" ownerProducer=\"USA\" xmlns=\"http://example.gov/IC-ISM/0\"/>"), payload->getEquivalentLabels()[0]);
            CPPUNIT_ASSERT_EQUAL(std::string("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MRUCAgD9DA9BcXVhIChvYnNvbGV0ZSk=</esssecuritylabel>"), payload->getEquivalentLabels()[1]);
        }
Esempio n. 4
0
		/*
		 * Test parsing of example 12 in XEP-0280.
		 */
		void testParseExample12() {
			PayloadsParserTester parser;
			CPPUNIT_ASSERT(parser.parse("<received xmlns='urn:xmpp:carbons:2'>"
											"<forwarded xmlns='urn:xmpp:forward:0'>"
												"<message xmlns='jabber:client'"
													" from='[email protected]/balcony'"
													" to='[email protected]/garden'"
													" type='chat'>"
													"<body>What man art thou that, thus bescreen'd in night, so stumblest on my counsel?</body>"
													"<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>"
												"</message>"
											"</forwarded>"
										"</received>"));

			CarbonsReceived::ref received = parser.getPayload<CarbonsReceived>();
			CPPUNIT_ASSERT(received);

			boost::shared_ptr<Forwarded> forwarded = received->getForwarded();
			CPPUNIT_ASSERT(forwarded);

			boost::shared_ptr<Message> message = boost::dynamic_pointer_cast<Message>(forwarded->getStanza());
			CPPUNIT_ASSERT(message);
			CPPUNIT_ASSERT_EQUAL(JID("[email protected]/balcony"), message->getFrom());

			boost::shared_ptr<Thread> thread = message->getPayload<Thread>();
			CPPUNIT_ASSERT(thread);
			CPPUNIT_ASSERT_EQUAL(std::string("0e3141cd80894871a68e6fe6b1ec56fa"), thread->getText());
		}
Esempio n. 5
0
		/*
		 * Test parsing of example 6 in XEP-0280.
		 */
		void testParseExample6() {
			PayloadsParserTester parser;
			CPPUNIT_ASSERT(parser.parse("<disable xmlns='urn:xmpp:carbons:2' />"));

			CarbonsDisable::ref disable = parser.getPayload<CarbonsDisable>();
			CPPUNIT_ASSERT(disable);
		}
Esempio n. 6
0
        void testParse() {
            PayloadsParserTester parser;
            CPPUNIT_ASSERT(parser.parse(
                "<set xmlns=\"http://jabber.org/protocol/rsm\">"
                    "<max>100</max>"
                    "<count>800</count>"
                    "<index>0</index>"
                    "<first index=\"123\">[email protected]</first>"
                    "<last>[email protected]</last>"
                    "<before>decaf-badba-dbad1</before>"
                    "<after>09af3-cc343-b409f</after>"
                "</set>"));

            std::shared_ptr<ResultSet> payload = parser.getPayload<ResultSet>();
            CPPUNIT_ASSERT(!!payload);
            CPPUNIT_ASSERT(payload->getMaxItems());
            CPPUNIT_ASSERT_EQUAL(100, *payload->getMaxItems());
            CPPUNIT_ASSERT(payload->getCount());
            CPPUNIT_ASSERT_EQUAL(800, *payload->getCount());
            CPPUNIT_ASSERT(payload->getIndex());
            CPPUNIT_ASSERT_EQUAL(0, *payload->getIndex());
            CPPUNIT_ASSERT(payload->getFirstID());
            CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), *payload->getFirstID());
            CPPUNIT_ASSERT(payload->getFirstIDIndex());
            CPPUNIT_ASSERT_EQUAL(123, *payload->getFirstIDIndex());
            CPPUNIT_ASSERT(payload->getLastID());
            CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), *payload->getLastID());
            CPPUNIT_ASSERT(payload->getBefore());
            CPPUNIT_ASSERT_EQUAL(std::string("decaf-badba-dbad1"), *payload->getBefore());
            CPPUNIT_ASSERT(payload->getAfter());
            CPPUNIT_ASSERT_EQUAL(std::string("09af3-cc343-b409f"), *payload->getAfter());
        }
		void testParse_Result() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<command xmlns='http://jabber.org/protocol/commands' node='config' status='completed' sessionid='myid'>"
					"<note type='warn'>Service 'httpd' has been configured.</note>"
					"<note type='error'>I lied.</note>"
					"<actions execute='next'>"
						"<prev/>"
						"<next/>"
					"</actions>"
				"</command>"
				));

			Command::ref payload = parser.getPayload<Command>();
			CPPUNIT_ASSERT_EQUAL(Command::Completed, payload->getStatus());
			std::vector<Command::Note> notes = payload->getNotes();
			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(notes.size()));
			CPPUNIT_ASSERT_EQUAL(Command::Note::Warn, notes[0].type);
			CPPUNIT_ASSERT_EQUAL(std::string("Service 'httpd' has been configured."), notes[0].note);
			CPPUNIT_ASSERT_EQUAL(Command::Note::Error, notes[1].type);
			CPPUNIT_ASSERT_EQUAL(std::string("I lied."), notes[1].note);
			std::vector<Command::Action> actions = payload->getAvailableActions();
			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(actions.size()));
			CPPUNIT_ASSERT_EQUAL(Command::Prev, actions[0]);
			CPPUNIT_ASSERT_EQUAL(Command::Next, actions[1]);
			CPPUNIT_ASSERT_EQUAL(Command::Next, payload->getExecuteAction());
		}
Esempio n. 8
0
        void testParse_Node() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse(
                "<query xmlns=\"http://jabber.org/protocol/disco#info\" node=\"blahblah\">"
                    "<identity name=\"Swift\" category=\"client\" type=\"pc\" xml:lang=\"en\"/>"
                    "<identity name=\"Vlug\" category=\"client\" type=\"pc\" xml:lang=\"nl\"/>"
                    "<feature var=\"foo-feature\"/>"
                    "<feature var=\"bar-feature\"/>"
                    "<feature var=\"baz-feature\"/>"
                "</query>"));

            DiscoInfo::ref payload = std::dynamic_pointer_cast<DiscoInfo>(parser.getPayload());
            CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(payload->getIdentities().size()));
            CPPUNIT_ASSERT_EQUAL(std::string("Swift"), payload->getIdentities()[0].getName());
            CPPUNIT_ASSERT_EQUAL(std::string("pc"), payload->getIdentities()[0].getType());
            CPPUNIT_ASSERT_EQUAL(std::string("client"), payload->getIdentities()[0].getCategory());
            CPPUNIT_ASSERT_EQUAL(std::string("en"), payload->getIdentities()[0].getLanguage());
            CPPUNIT_ASSERT_EQUAL(std::string("Vlug"), payload->getIdentities()[1].getName());
            CPPUNIT_ASSERT_EQUAL(std::string("pc"), payload->getIdentities()[1].getType());
            CPPUNIT_ASSERT_EQUAL(std::string("client"), payload->getIdentities()[1].getCategory());
            CPPUNIT_ASSERT_EQUAL(std::string("nl"), payload->getIdentities()[1].getLanguage());
            CPPUNIT_ASSERT_EQUAL(3, static_cast<int>(payload->getFeatures().size()));
            CPPUNIT_ASSERT_EQUAL(std::string("foo-feature"), payload->getFeatures()[0]);
            CPPUNIT_ASSERT_EQUAL(std::string("bar-feature"), payload->getFeatures()[1]);
            CPPUNIT_ASSERT_EQUAL(std::string("baz-feature"), payload->getFeatures()[2]);
            CPPUNIT_ASSERT_EQUAL(std::string("blahblah"), payload->getNode());
        }
		void testParse_Request() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
					"<si xmlns='http://jabber.org/protocol/si' id='a0' mime-type='text/plain' profile='http://jabber.org/protocol/si/profile/file-transfer'>"
						"<file xmlns='http://jabber.org/protocol/si/profile/file-transfer' name='test.txt' size='1022'>"
					    "<desc>This is info about the file.</desc>"
						"</file>"
						"<feature xmlns='http://jabber.org/protocol/feature-neg'>"
							"<x xmlns='jabber:x:data' type='form'>"
								"<field var='stream-method' type='list-single'>"
									"<option><value>http://jabber.org/protocol/bytestreams</value></option>"
									"<option><value>jabber:iq:oob</value></option>"
									"<option><value>http://jabber.org/protocol/ibb</value></option>"
								"</field>"
							"</x>"
						"</feature>"
					"</si>"
			));

			StreamInitiation::ref si = parser.getPayload<StreamInitiation>();
			CPPUNIT_ASSERT(si->getIsFileTransfer());
			CPPUNIT_ASSERT(si->getFileInfo());
			CPPUNIT_ASSERT_EQUAL(std::string("test.txt"), si->getFileInfo()->getName());
			CPPUNIT_ASSERT(1022 == si->getFileInfo()->getSize());
			CPPUNIT_ASSERT_EQUAL(std::string("This is info about the file."), si->getFileInfo()->getDescription());
			CPPUNIT_ASSERT_EQUAL(3, static_cast<int>(si->getProvidedMethods().size()));
			CPPUNIT_ASSERT_EQUAL(std::string("http://jabber.org/protocol/bytestreams"), si->getProvidedMethods()[0]);
			CPPUNIT_ASSERT_EQUAL(std::string("jabber:iq:oob"), si->getProvidedMethods()[1]);
			CPPUNIT_ASSERT_EQUAL(std::string("http://jabber.org/protocol/ibb"), si->getProvidedMethods()[2]);
		}
Esempio n. 10
0
		void testParse_WithEmptyVersion() {
			PayloadsParserTester parser;
			CPPUNIT_ASSERT(parser.parse("<query xmlns='jabber:iq:roster' ver=''/>"));

			RosterPayload* payload = dynamic_cast<RosterPayload*>(parser.getPayload().get());
			CPPUNIT_ASSERT(payload->getVersion());
			CPPUNIT_ASSERT_EQUAL(std::string(""), *payload->getVersion());
		}
Esempio n. 11
0
        void testParseXEP0184Example4() {
            PayloadsParserTester parser;
            CPPUNIT_ASSERT(parser.parse("<received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/>"));

            DeliveryReceipt::ref receipt = std::dynamic_pointer_cast<DeliveryReceipt>(parser.getPayload());

            CPPUNIT_ASSERT_EQUAL(std::string("richard2-4.1.247"), receipt->getReceivedID());
        }
Esempio n. 12
0
        void testParseXEP0184Example3() {
            PayloadsParserTester parser;
            CPPUNIT_ASSERT(parser.parse("<request xmlns='urn:xmpp:receipts'/>"));

            DeliveryReceiptRequest::ref request = std::dynamic_pointer_cast<DeliveryReceiptRequest>(parser.getPayload());

            CPPUNIT_ASSERT(request);
        }
		void testParse_Resource() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse("<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>someresource</resource></bind>"));

			ResourceBind* payload = dynamic_cast<ResourceBind*>(parser.getPayload().get());
			CPPUNIT_ASSERT_EQUAL(std::string("someresource"), payload->getResource());
		}
		void testParse_JID() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse("<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>[email protected]/someresource</jid></bind>"));

			ResourceBind* payload = dynamic_cast<ResourceBind*>(parser.getPayload().get());
			CPPUNIT_ASSERT_EQUAL(JID("[email protected]/someresource"), payload->getJID());
		}
Esempio n. 15
0
		void testParse_DND() {
			PayloadsParserTester parser;
			
			CPPUNIT_ASSERT(parser.parse("<show>dnd</show>"));

			StatusShow* payload = dynamic_cast<StatusShow*>(parser.getPayload().get());
			CPPUNIT_ASSERT(StatusShow::DND == payload->getType());
		}
Esempio n. 16
0
        void testParse_Invalid() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<priority>invalid</priority>"));

            std::shared_ptr<Priority> payload = std::dynamic_pointer_cast<Priority>(parser.getPayload());
            CPPUNIT_ASSERT_EQUAL(0, payload->getPriority());
        }
Esempio n. 17
0
        void testParse() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<body>foo<baz>bar</baz>fum</body>"));

            Body* payload = dynamic_cast<Body*>(parser.getPayload().get());
            CPPUNIT_ASSERT_EQUAL(std::string("foobarfum"), payload->getText());
        }
Esempio n. 18
0
		void testParse_Invalid() {
			PayloadsParserTester parser;
			
			CPPUNIT_ASSERT(parser.parse("<show>invalid</show>"));

			StatusShow* payload = dynamic_cast<StatusShow*>(parser.getPayload().get());
			CPPUNIT_ASSERT(StatusShow::Online == payload->getType());
		}
		void testParse_NoPayload() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse("<query xmlns='jabber:iq:private'/>"));

			boost::shared_ptr<PrivateStorage> payload = boost::dynamic_pointer_cast<PrivateStorage>(parser.getPayload());
			CPPUNIT_ASSERT(payload);
			CPPUNIT_ASSERT(!payload->getPayload());
		}
Esempio n. 20
0
        void testParseEmpty() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<x xmlns=\"http://jabber.org/protocol/muc#user\"/>"));

            MUCUserPayload::ref payload = std::dynamic_pointer_cast<MUCUserPayload>(parser.getPayload());
            CPPUNIT_ASSERT(payload);
            CPPUNIT_ASSERT(payload->getItems().empty());
        }
		void testParse() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<x xmlns='vcard-temp:x:update'>"
					"<photo>sha1-hash-of-image</photo>"
				"</x>"));

			VCardUpdate* payload = dynamic_cast<VCardUpdate*>(parser.getPayload().get());
			CPPUNIT_ASSERT_EQUAL(std::string("sha1-hash-of-image"), payload->getPhotoHash());
		}
Esempio n. 22
0
		void testParse() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<vCard xmlns=\"vcard-temp\">"
					"<VERSION>2.0</VERSION>"
					"<FN>Alice In Wonderland</FN>"
					"<N>"
						"<FAMILY>Wonderland</FAMILY>"
						"<GIVEN>Alice</GIVEN>"
						"<MIDDLE>In</MIDDLE>"
						"<PREFIX>Mrs</PREFIX>"
						"<SUFFIX>PhD</SUFFIX>"
					"</N>"
					"<EMAIL>"
						"<USERID>[email protected]</USERID>"
						"<HOME/>"
						"<INTERNET/>"
						"<PREF/>"
					"</EMAIL>"
					"<EMAIL>"
						"<USERID>[email protected]</USERID>"
						"<WORK/>"
						"<X400/>"
					"</EMAIL>"
					"<NICKNAME>DreamGirl</NICKNAME>"
					"<BDAY>1234</BDAY>"
					"<MAILER>mutt</MAILER>"
				"</vCard>"));

			boost::shared_ptr<VCard> payload = boost::dynamic_pointer_cast<VCard>(parser.getPayload());
			CPPUNIT_ASSERT_EQUAL(std::string("2.0"), payload->getVersion());
			CPPUNIT_ASSERT_EQUAL(std::string("Alice In Wonderland"), payload->getFullName());
			CPPUNIT_ASSERT_EQUAL(std::string("Alice"), payload->getGivenName());
			CPPUNIT_ASSERT_EQUAL(std::string("In"), payload->getMiddleName());
			CPPUNIT_ASSERT_EQUAL(std::string("Wonderland"), payload->getFamilyName());
			CPPUNIT_ASSERT_EQUAL(std::string("Mrs"), payload->getPrefix());
			CPPUNIT_ASSERT_EQUAL(std::string("PhD"), payload->getSuffix());
			CPPUNIT_ASSERT_EQUAL(std::string("DreamGirl"), payload->getNickname());
			CPPUNIT_ASSERT_EQUAL(std::string("<BDAY xmlns=\"vcard-temp\">1234</BDAY><MAILER xmlns=\"vcard-temp\">mutt</MAILER>"), payload->getUnknownContent());
			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(payload->getEMailAddresses().size()));
			CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), payload->getEMailAddresses()[0].address);
			CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isHome);
			CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isInternet);
			CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isPreferred);
			CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isWork);
			CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isX400);
			CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), payload->getEMailAddresses()[1].address);
			CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isHome);
			CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isInternet);
			CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isPreferred);
			CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isWork);
			CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isX400);
		}
Esempio n. 23
0
		void testParse_Nickname() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<vCard xmlns='vcard-temp'>"
					"<NICKNAME>mynick</NICKNAME>"
				"</vCard>"));

			VCard* payload = dynamic_cast<VCard*>(parser.getPayload().get());
			CPPUNIT_ASSERT_EQUAL(std::string("mynick"), payload->getNickname());
		}
		void testParse() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse("<query xmlns=\"http://jabber.org/protocol/muc#admin\"><item affiliation=\"owner\" role=\"visitor\"><actor jid=\"[email protected]\"/><reason>malice</reason></item></query>"));

			MUCAdminPayload::ref payload = boost::dynamic_pointer_cast<MUCAdminPayload>(parser.getPayload());
			MUCItem item = payload->getItems()[0];
			CPPUNIT_ASSERT_EQUAL(MUCOccupant::Owner, item.affiliation.get());
			CPPUNIT_ASSERT_EQUAL(MUCOccupant::Visitor, item.role.get());
			CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), item.actor.get());
			CPPUNIT_ASSERT_EQUAL(std::string("malice"), item.reason.get());
		}
		void testParse() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<command xmlns='http://jabber.org/protocol/commands' node='list' action='prev' sessionid='myid'/>"
				));

			Command::ref payload = parser.getPayload<Command>();
			CPPUNIT_ASSERT_EQUAL(Command::Prev, payload->getAction());
			CPPUNIT_ASSERT_EQUAL(std::string("list"), payload->getNode());
			CPPUNIT_ASSERT_EQUAL(std::string("myid"), payload->getSessionID());
		}
Esempio n. 26
0
        void testExample10() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<unblock xmlns='urn:xmpp:blocking'>"
                                            "<item jid='*****@*****.**'/>"
                                        "</unblock>"));

            UnblockPayload* payload = dynamic_cast<UnblockPayload*>(parser.getPayload().get());
            CPPUNIT_ASSERT(payload);
            CPPUNIT_ASSERT(1 == payload->getItems().size());
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), payload->getItems()[0]);
        }
Esempio n. 27
0
        void testParseDestroy() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<x xmlns=\"http://jabber.org/protocol/muc#user\"><destroy jid='*****@*****.**'><reason>bert</reason></destroy></x>"));

            MUCUserPayload::ref payload = std::dynamic_pointer_cast<MUCUserPayload>(parser.getPayload());
            CPPUNIT_ASSERT(payload);
            MUCDestroyPayload::ref destroy = std::dynamic_pointer_cast<MUCDestroyPayload>(payload->getPayload());
            CPPUNIT_ASSERT(destroy);
            CPPUNIT_ASSERT_EQUAL(std::string("bert"), destroy->getReason());
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), destroy->getNewVenue());
        }
Esempio n. 28
0
        void testParseFirstNoIndex() {
            PayloadsParserTester parser;
            CPPUNIT_ASSERT(parser.parse(
                "<set xmlns=\"http://jabber.org/protocol/rsm\">"
                    "<first>[email protected]</first>"
                "</set>"));

            std::shared_ptr<ResultSet> payload = parser.getPayload<ResultSet>();
            CPPUNIT_ASSERT(!!payload);
            CPPUNIT_ASSERT(payload->getFirstID());
            CPPUNIT_ASSERT_EQUAL(std::string("*****@*****.**"), *payload->getFirstID());
            CPPUNIT_ASSERT(!payload->getFirstIDIndex());
        }
Esempio n. 29
0
        void testExample4() {
            PayloadsParserTester parser;

            CPPUNIT_ASSERT(parser.parse("<blocklist xmlns='urn:xmpp:blocking'>"
                                            "<item jid='*****@*****.**'/>"
                                            "<item jid='*****@*****.**'/>"
                                        "</blocklist>"));

            BlockListPayload* payload = dynamic_cast<BlockListPayload*>(parser.getPayload().get());
            CPPUNIT_ASSERT(payload);
            CPPUNIT_ASSERT(2 == payload->getItems().size());
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), payload->getItems()[0]);
            CPPUNIT_ASSERT_EQUAL(JID("*****@*****.**"), payload->getItems()[1]);
        }
Esempio n. 30
0
		void testParse_URL() {
			PayloadsParserTester parser;

			CPPUNIT_ASSERT(parser.parse(
				"<storage xmlns='storage:bookmarks'>"
					"<url name='Complete Works of Shakespeare' url='http://the-tech.mit.edu/Shakespeare/'/>"
				"</storage>"));

			Storage* payload = dynamic_cast<Storage*>(parser.getPayload().get());
			std::vector<Storage::URL> urls = payload->getURLs();
			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(urls.size()));
			CPPUNIT_ASSERT_EQUAL(std::string("Complete Works of Shakespeare"), urls[0].name);
			CPPUNIT_ASSERT_EQUAL(std::string("http://the-tech.mit.edu/Shakespeare/"), urls[0].url);
		}