| // Copyright 2020 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. |
| |
| #include "croslog/config.h" |
| |
| #include <base/files/file_path.h> |
| #include <gtest/gtest.h> |
| |
| namespace croslog { |
| |
| class ConfigTest : public ::testing::Test { |
| public: |
| ConfigTest() = default; |
| ~ConfigTest() override = default; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(ConfigTest); |
| }; |
| |
| TEST_F(ConfigTest, ParseCommandLineSourceMode) { |
| base::FilePath kCrosLogProgramPath("croslog"); |
| |
| { |
| Config config; |
| base::CommandLine command_line_without_source(kCrosLogProgramPath); |
| EXPECT_TRUE(config.ParseCommandLineArgs(&command_line_without_source)); |
| EXPECT_EQ(SourceMode::PLAINTEXT_LOG, config.source); |
| } |
| |
| { |
| Config config; |
| base::CommandLine command_line_with_journal_log(kCrosLogProgramPath); |
| command_line_with_journal_log.AppendSwitchASCII("source", "journal"); |
| EXPECT_TRUE(config.ParseCommandLineArgs(&command_line_with_journal_log)); |
| EXPECT_EQ(SourceMode::JOURNAL_LOG, config.source); |
| } |
| |
| { |
| Config config; |
| base::CommandLine command_line_with_plaintext_log(kCrosLogProgramPath); |
| command_line_with_plaintext_log.AppendSwitchASCII("source", "plaintext"); |
| EXPECT_TRUE(config.ParseCommandLineArgs(&command_line_with_plaintext_log)); |
| EXPECT_EQ(SourceMode::PLAINTEXT_LOG, config.source); |
| } |
| |
| { |
| Config config; |
| base::CommandLine command_line_with_invalid_source(kCrosLogProgramPath); |
| command_line_with_invalid_source.AppendSwitchASCII("source", "invalid"); |
| EXPECT_FALSE( |
| config.ParseCommandLineArgs(&command_line_with_invalid_source)); |
| EXPECT_EQ(SourceMode::PLAINTEXT_LOG, config.source); |
| } |
| } |
| |
| } // namespace croslog |