Home | History | Annotate | Download | only in chromeos
      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 
     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 
     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 
     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