- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / hwid_checker_unittest.cc
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/login/hwid_checker.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9
10 namespace chromeos {
11
12 TEST(HWIDCheckerTest, EmptyHWID) {
13   EXPECT_FALSE(IsHWIDCorrect(""));
14 }
15
16 TEST(HWIDCheckerTest, HWIDv2) {
17   EXPECT_TRUE(IsHWIDCorrect("SOME DATA 7861"));
18   EXPECT_FALSE(IsHWIDCorrect("SOME DATA 7861 "));
19   EXPECT_FALSE(IsHWIDCorrect("SOME DATA 786 1"));
20   EXPECT_FALSE(IsHWIDCorrect("SOME DATA 786"));
21   EXPECT_FALSE(IsHWIDCorrect("SOME DATA7861"));
22 }
23
24 TEST(HWIDCheckerTest, ExceptionalHWID) {
25   EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKQ-E"));
26   EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-3K"));
27   EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2GI"));
28   EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2MRO"));
29   EXPECT_TRUE(IsHWIDCorrect("SPRING A7N3-BJKK-2MDG-V"));
30   EXPECT_TRUE(IsHWIDCorrect("SPRING DAKB-NM"));
31   EXPECT_TRUE(IsHWIDCorrect("FALCO APOM-3"));
32
33   // Not exceptions.
34   EXPECT_FALSE(IsHWIDCorrect("SPRING 3A7N-BJKZ-F"));
35   EXPECT_FALSE(IsHWIDCorrect("SPRING LA7N-BJK7-H"));
36   EXPECT_FALSE(IsHWIDCorrect("FALCO BPO6-C"));
37
38   // Degenerate cases.
39   EXPECT_FALSE(IsHWIDCorrect("SPRING"));
40   EXPECT_FALSE(IsHWIDCorrect("SPRING "));
41   EXPECT_FALSE(IsHWIDCorrect("SPRING KD"));
42   EXPECT_FALSE(IsHWIDCorrect("SPRING T7"));
43
44   // No board name.
45   EXPECT_FALSE(IsHWIDCorrect(" CA7N-BJKV-T"));
46   EXPECT_FALSE(IsHWIDCorrect("CA7N-BJKH-S"));
47
48   // Excess fields.
49   EXPECT_FALSE(IsHWIDCorrect("SPRING WINTER CA7N-BJK7-T"));
50   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKN-D WINTER"));
51
52   // Incorrect BOM format.
53   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7-NBJK-YO"));
54   EXPECT_FALSE(IsHWIDCorrect("SPRING CA-7NBJ-KYO"));
55   EXPECT_FALSE(IsHWIDCorrect("SPRING -CA7N-BJKY-O"));
56   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKK-FS-UN"));
57
58   // Incorrect characters.
59   EXPECT_FALSE(IsHWIDCorrect("SPRING CA9N-BJKL-P"));
60   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-B0KT-S"));
61   EXPECT_FALSE(IsHWIDCorrect("SPrING CA7N-BJKH-W"));
62
63   // Random changes.
64   EXPECT_FALSE(IsHWIDCorrect("SPRUNG CA7N-BJKY-O"));
65   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-8JKY-O"));
66   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJSY-O"));
67   EXPECT_FALSE(IsHWIDCorrect("SPRINGS CA7N-BJKY-O"));
68   EXPECT_FALSE(IsHWIDCorrect("SPRING CA7N-BJKM-L"));
69   EXPECT_FALSE(IsHWIDCorrect("SPRINGXCA7N-BJKZ-F"));
70 }
71
72 TEST(HWIDCheckerTest, HWIDv3) {
73   EXPECT_TRUE(IsHWIDCorrect("SPRING E2B-C3D-E8X"));
74   EXPECT_TRUE(IsHWIDCorrect("SPRING E2B-C3D-E8X-D8J"));
75   EXPECT_TRUE(IsHWIDCorrect("FALCO B67-36Y"));
76
77   // Exceptions.
78   EXPECT_FALSE(IsHWIDCorrect("SPRING D2B-C3D-E5D"));
79   EXPECT_FALSE(IsHWIDCorrect("SPRING A2B-C3D-E8X-D7T"));
80   EXPECT_FALSE(IsHWIDCorrect("FALCO A67-35W"));
81
82   // Degenerate cases.
83   EXPECT_FALSE(IsHWIDCorrect("SPRING"));
84   EXPECT_FALSE(IsHWIDCorrect("SPRING "));
85   EXPECT_TRUE(IsHWIDCorrect("SPRING Z34"));
86
87   // No board name.
88   EXPECT_FALSE(IsHWIDCorrect(" C7N-J3V-T4J"));
89   EXPECT_FALSE(IsHWIDCorrect("C7N-J3V-T2I"));
90
91   // Excess fields.
92   EXPECT_FALSE(IsHWIDCorrect("SPRING WINTER E2B-C3D-E3K"));
93   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E72 WINTER"));
94
95   // Incorrect BOM format.
96   EXPECT_FALSE(IsHWIDCorrect("SPRING E2BC3D-E8X"));
97   EXPECT_FALSE(IsHWIDCorrect("SPRING E2-B-C3D-E8X"));
98   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E8X-"));
99   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-E85-Y"));
100
101   // Incorrect characters.
102   EXPECT_FALSE(IsHWIDCorrect("SPrING E2B-C3D-E3P"));
103   EXPECT_FALSE(IsHWIDCorrect("SPRING EAB-C3D-E7Y"));
104   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C1D-E3W"));
105   EXPECT_FALSE(IsHWIDCorrect("SPRING E28-C3D-E7Z"));
106
107   // Random changes.
108   EXPECT_FALSE(IsHWIDCorrect("SPRING E2L-C3D-E8X"));
109   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-X8X"));
110   EXPECT_FALSE(IsHWIDCorrect("SPRINGZE2B-C3D-E8X"));
111   EXPECT_FALSE(IsHWIDCorrect("SPRMNG E2B-C3D-E8X"));
112   EXPECT_FALSE(IsHWIDCorrect("SPRING E2B-C3D-EIX"));
113 }
114
115 TEST(HWIDCheckerTest, KnownHWIDs) {
116   EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA 8992"));
117   EXPECT_FALSE(IsHWIDCorrect("DELL HORIZ0N MAGENTA 8992"));
118
119   EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA DVT 4770"));
120   EXPECT_FALSE(IsHWIDCorrect("DELL MAGENTA HORIZON DVT 4770"));
121
122   EXPECT_TRUE(IsHWIDCorrect("SAMS ALEX GAMMA DVT 9247"));
123   EXPECT_FALSE(IsHWIDCorrect("SAMS ALPX GAMMA DVT 9247"));
124 }
125
126 } // namespace chromeos
127