 Chromium Code Reviews
 Chromium Code Reviews Issue 2321823002:
  Exclude exe files while unzipping CRXes  (Closed)
    
  
    Issue 2321823002:
  Exclude exe files while unzipping CRXes  (Closed) 
  | 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 |