// Copyright 2015 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 "services/preferences/tracked/device_id.h"

#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"

TEST(GetDeterministicMachineSpecificIdTest, IsDeterministic) {
  std::string first_machine_id;
  std::string second_machine_id;

  const MachineIdStatus kExpectedStatus =
#if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS))
      MachineIdStatus::SUCCESS;
#else
      MachineIdStatus::NOT_IMPLEMENTED;
#endif

  ASSERT_EQ(kExpectedStatus,
            GetDeterministicMachineSpecificId(&first_machine_id));
  ASSERT_EQ(kExpectedStatus,
            GetDeterministicMachineSpecificId(&second_machine_id));

  // The reason for using |EXPECT_TRUE| with one argument instead of |EXPECT_EQ|
  // with two arguments is a compiler bug in gcc that results in a "converting
  // 'false' to pointer type" error when the first argument to |EXPECT_EQ| is a
  // compile-time const false value. See also the following bug reports:
  // https://code.google.com/p/googletest/issues/detail?id=322
  // https://code.google.com/p/googletest/issues/detail?id=458
  EXPECT_TRUE((kExpectedStatus == MachineIdStatus::SUCCESS) ==
              !first_machine_id.empty());
  EXPECT_EQ(first_machine_id, second_machine_id);
}
