1 // Copyright (c) 2010 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/version_loader.h"
6
7 #include <string>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace chromeos {
12
13 typedef testing::Test VersionLoaderTest;
14
15 static const char kTest1[] =
16 "DIST_ID=1\nCHROMEOS_RELEASE_DESCRIPTION=0.2.3.3\nFOO=BAR";
17 static const char kTest2[] = "DIST_ID=1\nCHROMEOS_RELEASE_DESCRIPTION=0.2.3.3";
18 static const char kTest3[] = "CHROMEOS_RELEASE_DESCRIPTION=\"0.2.3.3\"";
19 static const char kTest4[] = "CHROMEOS_RELEASE_DESCRIPTION=\"\"\"";
20 static const char kTest5[] = "CHROMEOS_RELEASE_DESCRIPTION=\"\"";
21
22 static const char kTest6[] =
23 "CHROMEOS_RELEASE_DESCRIPTION=1\nCHROMEOS_RELEASE_VERSION=0.2.3.3\nFOO=BAR";
24 static const char kTest7[] = "DIST_ID=1\nCHROMEOS_RELEASE_VERSION=0.2.3.3";
25 static const char kTest8[] = "CHROMEOS_RELEASE_VERSION=\"0.2.3.3\"";
26 static const char kTest9[] = "CHROMEOS_RELEASE_VERSION=\"\"";
27
28 static const char kTest10[] = "vendor | FOO";
29 static const char kTest11[] = "firmware | FOO";
30 static const char kTest12[] = "firmware | FOO";
31 static const char kTest13[] = "version | 0.2.3.3";
32 static const char kTest14[] = "version | 0.2.3.3";
33 static const char kTest15[] = "version 0.2.3.3";
34
TEST_F(VersionLoaderTest,ParseFullVersion)35 TEST_F(VersionLoaderTest, ParseFullVersion) {
36 EXPECT_EQ("0.2.3.3",
37 VersionLoader::ParseVersion(kTest1,
38 VersionLoader::kFullVersionPrefix));
39 EXPECT_EQ("0.2.3.3",
40 VersionLoader::ParseVersion(kTest2,
41 VersionLoader::kFullVersionPrefix));
42 EXPECT_EQ("0.2.3.3",
43 VersionLoader::ParseVersion(kTest3,
44 VersionLoader::kFullVersionPrefix));
45 EXPECT_EQ("\"",
46 VersionLoader::ParseVersion(kTest4,
47 VersionLoader::kFullVersionPrefix));
48 EXPECT_EQ(std::string(),
49 VersionLoader::ParseVersion(kTest5,
50 VersionLoader::kFullVersionPrefix));
51 EXPECT_EQ(std::string(),
52 VersionLoader::ParseVersion(std::string(),
53 VersionLoader::kFullVersionPrefix));
54 }
55
TEST_F(VersionLoaderTest,ParseVersion)56 TEST_F(VersionLoaderTest, ParseVersion) {
57 EXPECT_EQ("0.2.3.3",
58 VersionLoader::ParseVersion(kTest6,
59 VersionLoader::kVersionPrefix));
60 EXPECT_EQ("0.2.3.3",
61 VersionLoader::ParseVersion(kTest7,
62 VersionLoader::kVersionPrefix));
63 EXPECT_EQ("0.2.3.3",
64 VersionLoader::ParseVersion(kTest8,
65 VersionLoader::kVersionPrefix));
66 EXPECT_EQ(std::string(),
67 VersionLoader::ParseVersion(kTest9,
68 VersionLoader::kFullVersionPrefix));
69 }
70
TEST_F(VersionLoaderTest,ParseFirmware)71 TEST_F(VersionLoaderTest, ParseFirmware) {
72 EXPECT_EQ(std::string(), VersionLoader::ParseFirmware(kTest10));
73 EXPECT_EQ(std::string(), VersionLoader::ParseFirmware(kTest11));
74 EXPECT_EQ(std::string(), VersionLoader::ParseFirmware(kTest12));
75 EXPECT_EQ("0.2.3.3", VersionLoader::ParseFirmware(kTest13));
76 EXPECT_EQ("0.2.3.3", VersionLoader::ParseFirmware(kTest14));
77 EXPECT_EQ("0.2.3.3", VersionLoader::ParseFirmware(kTest15));
78 }
79
80 } // namespace chromeos
81