Home | History | Annotate | Download | only in listener
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "jingle/notifier/listener/push_notifications_subscribe_task.h"
      6 
      7 #include "base/memory/scoped_ptr.h"
      8 #include "base/strings/stringprintf.h"
      9 #include "jingle/notifier/listener/xml_element_util.h"
     10 #include "talk/xmpp/jid.h"
     11 #include "testing/gtest/include/gtest/gtest.h"
     12 
     13 namespace buzz {
     14 class XmlElement;
     15 }
     16 
     17 namespace notifier {
     18 
     19 class PushNotificationsSubscribeTaskTest : public testing::Test {
     20  public:
     21   PushNotificationsSubscribeTaskTest()
     22       : jid_("to (at) jid.com/test123"), task_id_("taskid") {
     23     EXPECT_NE(jid_.Str(), jid_.BareJid().Str());
     24   }
     25 
     26  protected:
     27   const buzz::Jid jid_;
     28   const std::string task_id_;
     29 
     30  private:
     31   DISALLOW_COPY_AND_ASSIGN(PushNotificationsSubscribeTaskTest);
     32 };
     33 
     34 TEST_F(PushNotificationsSubscribeTaskTest, MakeSubscriptionMessage) {
     35   SubscriptionList subscriptions;
     36 
     37   Subscription subscription;
     38   subscription.channel = "test_channel1";
     39   subscription.from = "from.test.com";
     40   subscriptions.push_back(subscription);
     41   subscription.channel = "test_channel2";
     42   subscription.from = "from.test2.com";
     43   subscriptions.push_back(subscription);
     44   scoped_ptr<buzz::XmlElement> message(
     45       PushNotificationsSubscribeTask::MakeSubscriptionMessage(
     46           subscriptions, jid_, task_id_));
     47   std::string expected_xml_string =
     48       base::StringPrintf(
     49           "<cli:iq type=\"set\" to=\"%s\" id=\"%s\" "
     50                   "xmlns:cli=\"jabber:client\">"
     51             "<subscribe xmlns=\"google:push\">"
     52               "<item channel=\"test_channel1\" from=\"from.test.com\"/>"
     53               "<item channel=\"test_channel2\" from=\"from.test2.com\"/>"
     54             "</subscribe>"
     55           "</cli:iq>",
     56           jid_.BareJid().Str().c_str(), task_id_.c_str());
     57 
     58   EXPECT_EQ(expected_xml_string, XmlElementToString(*message));
     59 }
     60 
     61 }  // namespace notifier
     62 
     63