blob: 9de664b2607d67d585756d2ab9e3e182ec8c3045 [file] [log] [blame]
// Copyright (c) 2013 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/chromeos/login/hwid_checker.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chromeos {
TEST(HWIDCheckerTest, EmptyHWID) {
EXPECT_FALSE(IsHWIDCorrect(""));
}
TEST(HWIDCheckerTest, HWIDv2) {
EXPECT_TRUE(IsHWIDCorrect("SOME DATA 7861"));
EXPECT_FALSE(IsHWIDCorrect("SOME DATA 7861 "));
EXPECT_FALSE(IsHWIDCorrect("SOME DATA 786 1"));
EXPECT_FALSE(IsHWIDCorrect("SOME DATA 786"));
EXPECT_FALSE(IsHWIDCorrect("SOME DATA7861"));
}
TEST(HWIDCheckerTest, ExceptionalHWID) {
EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKQ-E"));
EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-3K"));
EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2GI"));
EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2MRO"));
EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2MDG-V"));
EXPECT_TRUE(IsHWIDCorrect("SPRING DAKB-NM"));
EXPECT_TRUE(IsHWIDCorrect("FALCO APOM-3"));
// Not exceptions.
EXPECT_FALSE(IsHWIDCorrect("SPRING 3A7N-BJKZ-F"));
EXPECT_FALSE(IsHWIDCorrect("SPRING LA7N-BJK7-H"));
EXPECT_FALSE(IsHWIDCorrect("FALCO BPO6-C"));
// Degenerate cases.
EXPECT_FALSE(IsHWIDCorrect("SPRING"));
EXPECT_FALSE(IsHWIDCorrect("SPRING "));
EXPECT_FALSE(IsHWIDCorrect("SPRING KD"));
EXPECT_FALSE(IsHWIDCorrect("SPRING T7"));
// No board name.
EXPECT_FALSE(IsHWIDCorrect(" CA7N-BJKV-T"));
EXPECT_FALSE(IsHWIDCorrect("CA7N-BJKH-S"));
// Excess fields.
EXPECT_FALSE(IsHWIDCorrect("SPRING WINTER CA7N-BJK7-T"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKN-D WINTER"));
// Incorrect BOM format.
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7-NBJK-YO"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA-7NBJ-KYO"));
EXPECT_FALSE(IsHWIDCorrect("SPRING -CA7N-BJKY-O"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKK-FS-UN"));
// Incorrect characters.
EXPECT_FALSE(IsHWIDCorrect("SPRING CA9N-BJKL-P"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-B0KT-S"));
EXPECT_FALSE(IsHWIDCorrect("SPrING CA7N-BJKH-W"));
// Random changes.
EXPECT_FALSE(IsHWIDCorrect("SPRUNG CA7N-BJKY-O"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-8JKY-O"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJSY-O"));
EXPECT_FALSE(IsHWIDCorrect("SPRINGS CA7N-BJKY-O"));
EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKM-L"));
EXPECT_FALSE(IsHWIDCorrect("SPRINGXCA7N-BJKZ-F"));
}
TEST(HWIDCheckerTest, HWIDv3) {
EXPECT_TRUE(IsHWIDCorrect("SPRING E2B-C3D-E8X"));
EXPECT_TRUE(IsHWIDCorrect("SPRING E2B-C3D-E8X-D8J"));
EXPECT_TRUE(IsHWIDCorrect("FALCO B67-36Y"));
// Exceptions.
EXPECT_FALSE(IsHWIDCorrect("SPRING D2B-C3D-E5D"));
EXPECT_FALSE(IsHWIDCorrect("SPRING A2B-C3D-E8X-D7T"));
EXPECT_FALSE(IsHWIDCorrect("FALCO A67-35W"));
// Degenerate cases.
EXPECT_FALSE(IsHWIDCorrect("SPRING"));
EXPECT_FALSE(IsHWIDCorrect("SPRING "));
EXPECT_TRUE(IsHWIDCorrect("SPRING Z34"));
// No board name.
EXPECT_FALSE(IsHWIDCorrect(" C7N-J3V-T4J"));
EXPECT_FALSE(IsHWIDCorrect("C7N-J3V-T2I"));
// Excess fields.
EXPECT_FALSE(IsHWIDCorrect("SPRING WINTER E2B-C3D-E3K"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E72 WINTER"));
// Incorrect BOM format.
EXPECT_FALSE(IsHWIDCorrect("SPRING E2BC3D-E8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2-B-C3D-E8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E8X-"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E85-Y"));
// Incorrect characters.
EXPECT_FALSE(IsHWIDCorrect("SPrING E2B-C3D-E3P"));
EXPECT_FALSE(IsHWIDCorrect("SPRING EAB-C3D-E7Y"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C1D-E3W"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E28-C3D-E7Z"));
// Random changes.
EXPECT_FALSE(IsHWIDCorrect("SPRING E2L-C3D-E8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-X8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRINGZE2B-C3D-E8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRMNG E2B-C3D-E8X"));
EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-EIX"));
}
TEST(HWIDCheckerTest, KnownHWIDs) {
EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA 8992"));
EXPECT_FALSE(IsHWIDCorrect("DELL HORIZ0N MAGENTA 8992"));
EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA DVT 4770"));
EXPECT_FALSE(IsHWIDCorrect("DELL MAGENTA HORIZON DVT 4770"));
EXPECT_TRUE(IsHWIDCorrect("SAMS ALEX GAMMA DVT 9247"));
EXPECT_FALSE(IsHWIDCorrect("SAMS ALPX GAMMA DVT 9247"));
}
} // namespace chromeos