Chromium Code Reviews| Index: extensions/utility/extension_extractor_filter_unittest.cc |
| diff --git a/extensions/utility/extension_extractor_filter_unittest.cc b/extensions/utility/extension_extractor_filter_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5bf1177ff213b57a7807cedee26e61a034a6f98f |
| --- /dev/null |
| +++ b/extensions/utility/extension_extractor_filter_unittest.cc |
| @@ -0,0 +1,67 @@ |
| +// Copyright 2016 The Chromium 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 "extensions/utility/extension_extractor_filter.h" |
| + |
| +#include <stddef.h> |
| + |
| +#include <memory> |
| + |
| +#include "base/files/file_util.h" |
| +#include "base/files/scoped_temp_dir.h" |
| +#include "base/macros.h" |
| +#include "build/build_config.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "testing/platform_test.h" |
| + |
| +namespace { |
| + |
| +class ExtensionExtractorFilterTest : public PlatformTest { |
|
Devlin
2016/09/08 21:10:16
Do we need this instead of just testing::Test?
meacer
2016/09/08 22:40:10
Moved this to unpacker_unittest.cc
|
| + protected: |
| + void SetUp() override { |
| + PlatformTest::SetUp(); |
| + |
| + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| + test_dir_ = temp_dir_.path(); |
| + |
| + filter_ = new extensions::ExtensionExtractorFilter(); |
| + } |
| + |
| + base::FilePath CreateEmptyTestFile(const base::FilePath& file_path) { |
| + base::FilePath test_file(test_dir_.Append(file_path)); |
| + base::FilePath temp_file; |
| + EXPECT_TRUE(base::CreateTemporaryFileInDir(test_dir_, &temp_file)); |
| + EXPECT_TRUE(base::Move(temp_file, test_file)); |
| + return test_file; |
| + } |
| + |
| + scoped_refptr<extensions::ExtensionExtractorFilter> filter_; |
| + |
| + base::ScopedTempDir temp_dir_; |
| + |
| + base::FilePath test_dir_; |
| +}; |
| + |
| +struct UnaryBooleanTestData { |
| + const base::FilePath::CharType* input; |
| + bool expected; |
| +}; |
| + |
| +TEST_F(ExtensionExtractorFilterTest, NormalCases) { |
| + const struct UnaryBooleanTestData cases[] = { |
| + {FILE_PATH_LITERAL("foo"), true}, |
| + {FILE_PATH_LITERAL("foo.nexe"), true}, |
| + {FILE_PATH_LITERAL("foo.dll"), true}, |
| + {FILE_PATH_LITERAL("foo.exe"), false}, |
| + }; |
| + |
| + for (size_t i = 0; i < arraysize(cases); ++i) { |
| + base::FilePath input(cases[i].input); |
| + base::FilePath test_file(CreateEmptyTestFile(input)); |
| + bool observed = filter_->ShouldExtractFile(test_file); |
| + EXPECT_EQ(cases[i].expected, observed) << "i: " << i |
| + << ", input: " << test_file.value(); |
| + } |
| +} |
| +} // namespace |