root/chrome/browser/extensions/api/dial/dial_device_data_unittest.cc

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

DEFINITIONS

This source file includes following definitions.
  1. ExpectEqual
  2. TEST
  3. TEST
  4. TEST

// Copyright (c) 2012 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 "chrome/browser/extensions/api/dial/dial_device_data.h"
#include "chrome/common/extensions/api/dial.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace extensions {

namespace {

// Asserts equality between the two objects.
void ExpectEqual(const DialDeviceData& first, const DialDeviceData& second) {
  EXPECT_EQ(first.device_id(), second.device_id());
  EXPECT_EQ(first.label(), second.label());
  EXPECT_EQ(first.device_description_url(), second.device_description_url());
  EXPECT_EQ(first.response_time(), second.response_time());
  EXPECT_EQ(first.max_age(), second.max_age());
  EXPECT_EQ(first.config_id(), second.config_id());
}

}  // namespace

TEST(DialDeviceDataTest, TestFillDialDevice) {
  api::dial::DialDevice api_device;

  DialDeviceData device;
  device.set_device_id("device");
  device.set_label("label");
  device.set_device_description_url(GURL("http://127.0.0.1/dd.xml"));
  device.set_config_id(1);

  device.FillDialDevice(&api_device);
  EXPECT_EQ(api_device.device_label, device.label());
  EXPECT_EQ(api_device.device_description_url,
            device.device_description_url().spec());
  EXPECT_EQ(*(api_device.config_id), device.config_id());
}

TEST(DialDeviceDataTest, TestUpdateFrom) {
  DialDeviceData original;
  original.set_device_id("device_a");
  original.set_label("label_a");
  original.set_device_description_url(GURL("http://127.0.0.1/dd-a.xml"));
  original.set_response_time(base::Time::FromInternalValue(1000));
  original.set_max_age(100);
  original.set_config_id(1);

  DialDeviceData new_data;
  new_data.set_device_id("device_a");
  new_data.set_device_description_url(GURL("http://127.0.0.1/dd-a.xml"));
  new_data.set_response_time(base::Time::FromInternalValue(1000));
  new_data.set_max_age(100);
  new_data.set_config_id(1);

  DialDeviceData original_1(original);
  EXPECT_FALSE(original_1.UpdateFrom(new_data));
  ExpectEqual(original_1, original);

  DialDeviceData original_2(original);
  new_data.set_max_age(200);
  new_data.set_response_time(base::Time::FromInternalValue(2000));
  EXPECT_FALSE(original_2.UpdateFrom(new_data));

  EXPECT_EQ("device_a", original_2.device_id());
  EXPECT_EQ(GURL("http://127.0.0.1/dd-a.xml"),
            original_2.device_description_url());
  EXPECT_EQ("label_a", original_2.label());
  EXPECT_EQ(200, original_2.max_age());
  EXPECT_EQ(base::Time::FromInternalValue(2000), original_2.response_time());
  EXPECT_EQ(1, original_2.config_id());

  DialDeviceData original_3(original);
  new_data.set_device_description_url(GURL("http://127.0.0.2/dd-b.xml"));
  new_data.set_config_id(2);
  EXPECT_TRUE(original_3.UpdateFrom(new_data));

  EXPECT_EQ("device_a", original_3.device_id());
  EXPECT_EQ(GURL("http://127.0.0.2/dd-b.xml"),
            original_3.device_description_url());
  EXPECT_EQ("label_a", original_3.label());
  EXPECT_EQ(200, original_3.max_age());
  EXPECT_EQ(base::Time::FromInternalValue(2000), original_3.response_time());
  EXPECT_EQ(2, original_3.config_id());
}

TEST(DialDeviceDataTest, TestIsDeviceDescriptionUrl) {
  EXPECT_TRUE(DialDeviceData::IsDeviceDescriptionUrl(
      GURL("http://some.device.com/dd.xml")));
  EXPECT_TRUE(DialDeviceData::IsDeviceDescriptionUrl(
      GURL("https://some.device.com/dd.xml")));
  EXPECT_TRUE(DialDeviceData::IsDeviceDescriptionUrl(
      GURL("http://192.168.1.1:1234/dd.xml")));
  EXPECT_TRUE(DialDeviceData::IsDeviceDescriptionUrl(
      GURL("https://192.168.1.1:1234/dd.xml")));

  EXPECT_FALSE(DialDeviceData::IsDeviceDescriptionUrl(GURL()));
  EXPECT_FALSE(DialDeviceData::IsDeviceDescriptionUrl(GURL(std::string())));
  EXPECT_FALSE(
      DialDeviceData::IsDeviceDescriptionUrl(GURL("file://path/to/file")));
}

}  // namespace extensions

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