| Index: bootloader_type_unittest.cc
|
| diff --git a/bootloader_type_unittest.cc b/bootloader_type_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..57ab2f582c67c056029a38ca200bce7771de4c77
|
| --- /dev/null
|
| +++ b/bootloader_type_unittest.cc
|
| @@ -0,0 +1,114 @@
|
| +// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +//
|
| +// Tests for cros_boot_mode::BootloaderType default behavior.
|
| +#include "bootloader_type.h"
|
| +
|
| +#include <base/basictypes.h>
|
| +#include <base/file_util.h>
|
| +#include <base/stringprintf.h>
|
| +#include <gtest/gtest.h>
|
| +#include <string>
|
| +
|
| +class BootloaderTypeTest : public ::testing::Test {
|
| + public:
|
| + void SetUp() {
|
| + EXPECT_TRUE(file_util::CreateNewTempDirectory("", &temp_dir_));
|
| + type_file_path_ = temp_dir_.value();
|
| + type_file_path_.append("cmdline");
|
| + type_.set_platform_file_path(type_file_path_.c_str());
|
| + }
|
| + void TearDown() {
|
| + file_util::Delete(temp_dir_, true);
|
| + }
|
| +
|
| + void ExpectType(int type) {
|
| + static const char *kUnsupported = "unsupported";
|
| + EXPECT_EQ(type, type_.value());
|
| + // If the position is -1, it is does not index.
|
| + const char *expected_c_str = kUnsupported;
|
| + if (type >= 0)
|
| + expected_c_str =
|
| + cros_boot_mode::BootloaderType::kBootloaderTypeText[type];
|
| + EXPECT_STREQ(expected_c_str, type_.c_str());
|
| + }
|
| + protected:
|
| + std::string type_file_path_;
|
| + FilePath temp_dir_;
|
| + cros_boot_mode::BootloaderType type_;
|
| +};
|
| +
|
| +TEST_F(BootloaderTypeTest, ChromeOSBare) {
|
| + std::string contents = StringPrintf("%s",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kChromeOS);
|
| +}
|
| +
|
| +TEST_F(BootloaderTypeTest, ChromeOSSpaces) {
|
| + std::string contents = StringPrintf(" %s ",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kChromeOS);
|
| +}
|
| +
|
| +TEST_F(BootloaderTypeTest, NoBoundaries) {
|
| + std::string contents = StringPrintf("x%sx",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kUnsupported);
|
| +}
|
| +
|
| +TEST_F(BootloaderTypeTest, NoStartingBoundary) {
|
| + std::string contents = StringPrintf("x%s",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kUnsupported);
|
| +}
|
| +
|
| +TEST_F(BootloaderTypeTest, NoTrailingBoundary) {
|
| + std::string contents = StringPrintf("%sx",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kUnsupported);
|
| +}
|
| +
|
| +TEST_F(BootloaderTypeTest, FirstMatchIsUsed) {
|
| + std::string contents = StringPrintf(" %s %s ",
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kChromeOS],
|
| + cros_boot_mode::BootloaderType::kSupportedBootloaders[
|
| + cros_boot_mode::BootloaderType::kEFI]);
|
| +
|
| + EXPECT_EQ(file_util::WriteFile(FilePath(type_file_path_),
|
| + contents.c_str(), contents.length()),
|
| + contents.length());
|
| + type_.Initialize();
|
| + ExpectType(cros_boot_mode::BootloaderType::kChromeOS);
|
| +}
|
|
|