root/jingle/notifier/listener/push_notifications_subscribe_task_unittest.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. task_id_
  2. TEST_F

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "jingle/notifier/listener/push_notifications_subscribe_task.h"

#include "base/memory/scoped_ptr.h"
#include "base/strings/stringprintf.h"
#include "jingle/notifier/listener/xml_element_util.h"
#include "talk/xmpp/jid.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace buzz {
class XmlElement;
}

namespace notifier {

class PushNotificationsSubscribeTaskTest : public testing::Test {
 public:
  PushNotificationsSubscribeTaskTest()
      : jid_("to@jid.com/test123"), task_id_("taskid") {
    EXPECT_NE(jid_.Str(), jid_.BareJid().Str());
  }

 protected:
  const buzz::Jid jid_;
  const std::string task_id_;

 private:
  DISALLOW_COPY_AND_ASSIGN(PushNotificationsSubscribeTaskTest);
};

TEST_F(PushNotificationsSubscribeTaskTest, MakeSubscriptionMessage) {
  SubscriptionList subscriptions;

  Subscription subscription;
  subscription.channel = "test_channel1";
  subscription.from = "from.test.com";
  subscriptions.push_back(subscription);
  subscription.channel = "test_channel2";
  subscription.from = "from.test2.com";
  subscriptions.push_back(subscription);
  scoped_ptr<buzz::XmlElement> message(
      PushNotificationsSubscribeTask::MakeSubscriptionMessage(
          subscriptions, jid_, task_id_));
  std::string expected_xml_string =
      base::StringPrintf(
          "<cli:iq type=\"set\" to=\"%s\" id=\"%s\" "
                  "xmlns:cli=\"jabber:client\">"
            "<subscribe xmlns=\"google:push\">"
              "<item channel=\"test_channel1\" from=\"from.test.com\"/>"
              "<item channel=\"test_channel2\" from=\"from.test2.com\"/>"
            "</subscribe>"
          "</cli:iq>",
          jid_.BareJid().Str().c_str(), task_id_.c_str());

  EXPECT_EQ(expected_xml_string, XmlElementToString(*message));
}

}  // namespace notifier


/* [<][>][^][v][top][bottom][index][help] */