OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include <iostream> | 11 #include <iostream> |
| 12 #include <memory> |
12 #include <sstream> | 13 #include <sstream> |
13 #include <string> | 14 #include <string> |
14 | 15 |
15 #include "webrtc/libjingle/xmllite/xmlelement.h" | 16 #include "webrtc/libjingle/xmllite/xmlelement.h" |
16 #include "webrtc/libjingle/xmpp/constants.h" | 17 #include "webrtc/libjingle/xmpp/constants.h" |
17 #include "webrtc/libjingle/xmpp/rostermodule.h" | 18 #include "webrtc/libjingle/xmpp/rostermodule.h" |
18 #include "webrtc/libjingle/xmpp/util_unittest.h" | 19 #include "webrtc/libjingle/xmpp/util_unittest.h" |
19 #include "webrtc/libjingle/xmpp/xmppengine.h" | 20 #include "webrtc/libjingle/xmpp/xmppengine.h" |
20 #include "webrtc/base/gunit.h" | 21 #include "webrtc/base/gunit.h" |
21 #include "webrtc/base/scoped_ptr.h" | |
22 | 22 |
23 #define TEST_OK(x) EXPECT_EQ((x),XMPP_RETURN_OK) | 23 #define TEST_OK(x) EXPECT_EQ((x),XMPP_RETURN_OK) |
24 #define TEST_BADARGUMENT(x) EXPECT_EQ((x),XMPP_RETURN_BADARGUMENT) | 24 #define TEST_BADARGUMENT(x) EXPECT_EQ((x),XMPP_RETURN_BADARGUMENT) |
25 | 25 |
26 | 26 |
27 namespace buzz { | 27 namespace buzz { |
28 | 28 |
29 class RosterModuleTest; | 29 class RosterModuleTest; |
30 | 30 |
31 static void | 31 static void |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 XmppTestHandler* handler) { | 243 XmppTestHandler* handler) { |
244 // Needs to be similar to XmppEngineTest::RunLogin | 244 // Needs to be similar to XmppEngineTest::RunLogin |
245 } | 245 } |
246 }; | 246 }; |
247 | 247 |
248 TEST_F(RosterModuleTest, TestPresence) { | 248 TEST_F(RosterModuleTest, TestPresence) { |
249 XmlElement* status = new XmlElement(QN_GOOGLE_PSTN_CONFERENCE_STATUS); | 249 XmlElement* status = new XmlElement(QN_GOOGLE_PSTN_CONFERENCE_STATUS); |
250 status->AddAttr(QN_STATUS, STR_PSTN_CONFERENCE_STATUS_CONNECTING); | 250 status->AddAttr(QN_STATUS, STR_PSTN_CONFERENCE_STATUS_CONNECTING); |
251 XmlElement presence_xml(QN_PRESENCE); | 251 XmlElement presence_xml(QN_PRESENCE); |
252 presence_xml.AddElement(status); | 252 presence_xml.AddElement(status); |
253 rtc::scoped_ptr<XmppPresence> presence(XmppPresence::Create()); | 253 std::unique_ptr<XmppPresence> presence(XmppPresence::Create()); |
254 presence->set_raw_xml(&presence_xml); | 254 presence->set_raw_xml(&presence_xml); |
255 EXPECT_EQ(presence->connection_status(), XMPP_CONNECTION_STATUS_CONNECTING); | 255 EXPECT_EQ(presence->connection_status(), XMPP_CONNECTION_STATUS_CONNECTING); |
256 } | 256 } |
257 | 257 |
258 TEST_F(RosterModuleTest, TestOutgoingPresence) { | 258 TEST_F(RosterModuleTest, TestOutgoingPresence) { |
259 std::stringstream dump; | 259 std::stringstream dump; |
260 | 260 |
261 rtc::scoped_ptr<XmppEngine> engine(XmppEngine::Create()); | 261 std::unique_ptr<XmppEngine> engine(XmppEngine::Create()); |
262 XmppTestHandler handler(engine.get()); | 262 XmppTestHandler handler(engine.get()); |
263 XmppTestRosterHandler roster_handler; | 263 XmppTestRosterHandler roster_handler; |
264 | 264 |
265 rtc::scoped_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); | 265 std::unique_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); |
266 roster->set_roster_handler(&roster_handler); | 266 roster->set_roster_handler(&roster_handler); |
267 | 267 |
268 // Configure the roster module | 268 // Configure the roster module |
269 roster->RegisterEngine(engine.get()); | 269 roster->RegisterEngine(engine.get()); |
270 | 270 |
271 // Set up callbacks | 271 // Set up callbacks |
272 engine->SetOutputHandler(&handler); | 272 engine->SetOutputHandler(&handler); |
273 engine->AddStanzaHandler(&handler); | 273 engine->AddStanzaHandler(&handler); |
274 engine->SetSessionHandler(&handler); | 274 engine->SetSessionHandler(&handler); |
275 | 275 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 EXPECT_EQ(roster_handler.StrClear(), ""); | 357 EXPECT_EQ(roster_handler.StrClear(), ""); |
358 EXPECT_EQ(handler.OutputActivity(), | 358 EXPECT_EQ(handler.OutputActivity(), |
359 "<presence type=\"unavailable\">" | 359 "<presence type=\"unavailable\">" |
360 "<priority>42</priority>" | 360 "<priority>42</priority>" |
361 "<status xml:lang=\"es\">Hola Amigos!</status>" | 361 "<status xml:lang=\"es\">Hola Amigos!</status>" |
362 "<status>Hey there, friend!</status>" | 362 "<status>Hey there, friend!</status>" |
363 "</presence>"); | 363 "</presence>"); |
364 EXPECT_EQ(handler.SessionActivity(), ""); | 364 EXPECT_EQ(handler.SessionActivity(), ""); |
365 | 365 |
366 // Construct a directed presence | 366 // Construct a directed presence |
367 rtc::scoped_ptr<XmppPresence> directed_presence(XmppPresence::Create()); | 367 std::unique_ptr<XmppPresence> directed_presence(XmppPresence::Create()); |
368 TEST_OK(directed_presence->set_available(XMPP_PRESENCE_AVAILABLE)); | 368 TEST_OK(directed_presence->set_available(XMPP_PRESENCE_AVAILABLE)); |
369 TEST_OK(directed_presence->set_priority(120)); | 369 TEST_OK(directed_presence->set_priority(120)); |
370 TEST_OK(directed_presence->set_status("*very* available")); | 370 TEST_OK(directed_presence->set_status("*very* available")); |
371 TEST_OK(roster->SendDirectedPresence(directed_presence.get(), | 371 TEST_OK(roster->SendDirectedPresence(directed_presence.get(), |
372 Jid("myhoney@honey.net"))); | 372 Jid("myhoney@honey.net"))); |
373 | 373 |
374 EXPECT_EQ(roster_handler.StrClear(), ""); | 374 EXPECT_EQ(roster_handler.StrClear(), ""); |
375 EXPECT_EQ(handler.OutputActivity(), | 375 EXPECT_EQ(handler.OutputActivity(), |
376 "<presence to=\"myhoney@honey.net\">" | 376 "<presence to=\"myhoney@honey.net\">" |
377 "<priority>120</priority>" | 377 "<priority>120</priority>" |
378 "<status>*very* available</status>" | 378 "<status>*very* available</status>" |
379 "</presence>"); | 379 "</presence>"); |
380 EXPECT_EQ(handler.SessionActivity(), ""); | 380 EXPECT_EQ(handler.SessionActivity(), ""); |
381 } | 381 } |
382 | 382 |
383 TEST_F(RosterModuleTest, TestIncomingPresence) { | 383 TEST_F(RosterModuleTest, TestIncomingPresence) { |
384 rtc::scoped_ptr<XmppEngine> engine(XmppEngine::Create()); | 384 std::unique_ptr<XmppEngine> engine(XmppEngine::Create()); |
385 XmppTestHandler handler(engine.get()); | 385 XmppTestHandler handler(engine.get()); |
386 XmppTestRosterHandler roster_handler; | 386 XmppTestRosterHandler roster_handler; |
387 | 387 |
388 rtc::scoped_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); | 388 std::unique_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); |
389 roster->set_roster_handler(&roster_handler); | 389 roster->set_roster_handler(&roster_handler); |
390 | 390 |
391 // Configure the roster module | 391 // Configure the roster module |
392 roster->RegisterEngine(engine.get()); | 392 roster->RegisterEngine(engine.get()); |
393 | 393 |
394 // Set up callbacks | 394 // Set up callbacks |
395 engine->SetOutputHandler(&handler); | 395 engine->SetOutputHandler(&handler); |
396 engine->AddStanzaHandler(&handler); | 396 engine->AddStanzaHandler(&handler); |
397 engine->SetSessionHandler(&handler); | 397 engine->SetSessionHandler(&handler); |
398 | 398 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 "to=\"david@my-server/test\" type=\"unavailable\" " | 506 "to=\"david@my-server/test\" type=\"unavailable\" " |
507 "xmlns:cli=\"jabber:client\">" | 507 "xmlns:cli=\"jabber:client\">" |
508 "<cli:status>Stealing my rug back</cli:status>" | 508 "<cli:status>Stealing my rug back</cli:status>" |
509 "<cli:priority>-10</cli:priority>" | 509 "<cli:priority>-10</cli:priority>" |
510 "</cli:presence>]"); | 510 "</cli:presence>]"); |
511 EXPECT_EQ(handler.OutputActivity(), ""); | 511 EXPECT_EQ(handler.OutputActivity(), ""); |
512 handler.SessionActivity(); // Ignore the session output | 512 handler.SessionActivity(); // Ignore the session output |
513 } | 513 } |
514 | 514 |
515 TEST_F(RosterModuleTest, TestPresenceSubscription) { | 515 TEST_F(RosterModuleTest, TestPresenceSubscription) { |
516 rtc::scoped_ptr<XmppEngine> engine(XmppEngine::Create()); | 516 std::unique_ptr<XmppEngine> engine(XmppEngine::Create()); |
517 XmppTestHandler handler(engine.get()); | 517 XmppTestHandler handler(engine.get()); |
518 XmppTestRosterHandler roster_handler; | 518 XmppTestRosterHandler roster_handler; |
519 | 519 |
520 rtc::scoped_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); | 520 std::unique_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); |
521 roster->set_roster_handler(&roster_handler); | 521 roster->set_roster_handler(&roster_handler); |
522 | 522 |
523 // Configure the roster module | 523 // Configure the roster module |
524 roster->RegisterEngine(engine.get()); | 524 roster->RegisterEngine(engine.get()); |
525 | 525 |
526 // Set up callbacks | 526 // Set up callbacks |
527 engine->SetOutputHandler(&handler); | 527 engine->SetOutputHandler(&handler); |
528 engine->AddStanzaHandler(&handler); | 528 engine->AddStanzaHandler(&handler); |
529 engine->SetSessionHandler(&handler); | 529 engine->SetSessionHandler(&handler); |
530 | 530 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 EXPECT_EQ(roster_handler.StrClear(), ""); | 569 EXPECT_EQ(roster_handler.StrClear(), ""); |
570 EXPECT_EQ(handler.OutputActivity(), | 570 EXPECT_EQ(handler.OutputActivity(), |
571 "<presence to=\"maude@example.net\" type=\"subscribe\"/>" | 571 "<presence to=\"maude@example.net\" type=\"subscribe\"/>" |
572 "<presence to=\"maude@example.net\" type=\"unsubscribe\"/>" | 572 "<presence to=\"maude@example.net\" type=\"unsubscribe\"/>" |
573 "<presence to=\"maude@example.net\" type=\"subscribed\"/>" | 573 "<presence to=\"maude@example.net\" type=\"subscribed\"/>" |
574 "<presence to=\"maude@example.net\" type=\"unsubscribed\"/>"); | 574 "<presence to=\"maude@example.net\" type=\"unsubscribed\"/>"); |
575 EXPECT_EQ(handler.SessionActivity(), ""); | 575 EXPECT_EQ(handler.SessionActivity(), ""); |
576 } | 576 } |
577 | 577 |
578 TEST_F(RosterModuleTest, TestRosterReceive) { | 578 TEST_F(RosterModuleTest, TestRosterReceive) { |
579 rtc::scoped_ptr<XmppEngine> engine(XmppEngine::Create()); | 579 std::unique_ptr<XmppEngine> engine(XmppEngine::Create()); |
580 XmppTestHandler handler(engine.get()); | 580 XmppTestHandler handler(engine.get()); |
581 XmppTestRosterHandler roster_handler; | 581 XmppTestRosterHandler roster_handler; |
582 | 582 |
583 rtc::scoped_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); | 583 std::unique_ptr<XmppRosterModule> roster(XmppRosterModule::Create()); |
584 roster->set_roster_handler(&roster_handler); | 584 roster->set_roster_handler(&roster_handler); |
585 | 585 |
586 // Configure the roster module | 586 // Configure the roster module |
587 roster->RegisterEngine(engine.get()); | 587 roster->RegisterEngine(engine.get()); |
588 | 588 |
589 // Set up callbacks | 589 // Set up callbacks |
590 engine->SetOutputHandler(&handler); | 590 engine->SetOutputHandler(&handler); |
591 engine->AddStanzaHandler(&handler); | 591 engine->AddStanzaHandler(&handler); |
592 engine->SetSessionHandler(&handler); | 592 engine->SetSessionHandler(&handler); |
593 | 593 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 "4:[Contact jid:jesus@example.net name:Jesus Quintana " | 689 "4:[Contact jid:jesus@example.net name:Jesus Quintana " |
690 "subscription_state:from groups:[Bowling League]]" | 690 "subscription_state:from groups:[Bowling League]]" |
691 "<ros:item jid=\"jesus@example.net\" name=\"Jesus Quintana\" " | 691 "<ros:item jid=\"jesus@example.net\" name=\"Jesus Quintana\" " |
692 "subscription=\"from\" xmlns:ros=\"jabber:iq:roster\">" | 692 "subscription=\"from\" xmlns:ros=\"jabber:iq:roster\">" |
693 "<ros:group>Bowling League</ros:group>" | 693 "<ros:group>Bowling League</ros:group>" |
694 "</ros:item>]"); | 694 "</ros:item>]"); |
695 EXPECT_EQ(handler.OutputActivity(), ""); | 695 EXPECT_EQ(handler.OutputActivity(), ""); |
696 EXPECT_EQ(handler.SessionActivity(), ""); | 696 EXPECT_EQ(handler.SessionActivity(), ""); |
697 | 697 |
698 // Request that someone be added | 698 // Request that someone be added |
699 rtc::scoped_ptr<XmppRosterContact> contact(XmppRosterContact::Create()); | 699 std::unique_ptr<XmppRosterContact> contact(XmppRosterContact::Create()); |
700 TEST_OK(contact->set_jid(Jid("brandt@example.net"))); | 700 TEST_OK(contact->set_jid(Jid("brandt@example.net"))); |
701 TEST_OK(contact->set_name("Brandt")); | 701 TEST_OK(contact->set_name("Brandt")); |
702 TEST_OK(contact->AddGroup("Business Partners")); | 702 TEST_OK(contact->AddGroup("Business Partners")); |
703 TEST_OK(contact->AddGroup("Watchers")); | 703 TEST_OK(contact->AddGroup("Watchers")); |
704 TEST_OK(contact->AddGroup("Friends")); | 704 TEST_OK(contact->AddGroup("Friends")); |
705 TEST_OK(contact->RemoveGroup("Friends")); // Maybe not... | 705 TEST_OK(contact->RemoveGroup("Friends")); // Maybe not... |
706 TEST_OK(roster->RequestRosterChange(contact.get())); | 706 TEST_OK(roster->RequestRosterChange(contact.get())); |
707 | 707 |
708 EXPECT_EQ(roster_handler.StrClear(), ""); | 708 EXPECT_EQ(roster_handler.StrClear(), ""); |
709 EXPECT_EQ(handler.OutputActivity(), | 709 EXPECT_EQ(handler.OutputActivity(), |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 "subscription=\"from\" " | 823 "subscription=\"from\" " |
824 "xmlns:ros=\"jabber:iq:roster\">" | 824 "xmlns:ros=\"jabber:iq:roster\">" |
825 "<ros:group>Bowling League</ros:group>" | 825 "<ros:group>Bowling League</ros:group>" |
826 "</ros:item> index:4]"); | 826 "</ros:item> index:4]"); |
827 EXPECT_EQ(handler.OutputActivity(), | 827 EXPECT_EQ(handler.OutputActivity(), |
828 "<iq type=\"result\" id=\"server_3\"/>"); | 828 "<iq type=\"result\" id=\"server_3\"/>"); |
829 EXPECT_EQ(handler.SessionActivity(), ""); | 829 EXPECT_EQ(handler.SessionActivity(), ""); |
830 } | 830 } |
831 | 831 |
832 } | 832 } |
OLD | NEW |