blob: 21a4f07dd68333c3f5b436568649e98191bbbbfd [file] [log] [blame]
// 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 "rlz/lib/machine_id.h"
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "rlz/test/rlz_test_helpers.h"
#include "testing/gtest/include/gtest/gtest.h"
// This test will fail if the behavior of GetMachineId changes.
TEST(MachineDealCodeTestMachineId, MachineId) {
base::string16 computer_sid(base::UTF8ToUTF16(
"S-1-5-21-2345599882-2448789067-1921365677"));
std::string id;
rlz_lib::testing::GetMachineIdImpl(computer_sid, -1643738288, &id);
EXPECT_STREQ("A341BA986A7E86840688977FCF20C86E253F00919E068B50F8",
id.c_str());
}
#if defined(OS_CHROMEOS)
TEST(MachineDealCodeTestMachineId, MachineIdIsUnique) {
std::string id1;
std::string id2;
rlz_lib::GetMachineId(&id1);
rlz_lib::GetMachineId(&id2);
EXPECT_NE(id1, id2);
}
TEST(MachineDealCodeTestMachineId, MachineIdIsProperFormat) {
std::string id;
rlz_lib::GetMachineId(&id);
std::string prefix = id.substr(0, 5);
EXPECT_EQ(50u, id.length());
EXPECT_TRUE(
base::ContainsOnlyChars(id, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));
EXPECT_STREQ("NONCE", prefix.c_str());
}
#endif