Index: third_party/zlib/google/zip_reader_unittest.cc |
diff --git a/third_party/zlib/google/zip_reader_unittest.cc b/third_party/zlib/google/zip_reader_unittest.cc |
index 89b4ac52e32607ebf361c4c6341168b37dd71db1..d4bb5794657dcb4da2dd19f7bdeb4039d6d4ed7d 100644 |
--- a/third_party/zlib/google/zip_reader_unittest.cc |
+++ b/third_party/zlib/google/zip_reader_unittest.cc |
@@ -18,13 +18,9 @@ |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/time/time.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "testing/platform_test.h" |
#include "third_party/zlib/google/zip_internal.h" |
- |
-using ::testing::Return; |
-using ::testing::_; |
namespace { |
@@ -50,8 +46,6 @@ |
~FileWrapper() {} |
base::PlatformFile platform_file() { return file_.GetPlatformFile(); } |
- |
- base::File* file() { return &file_; } |
private: |
base::File file_; |
@@ -97,12 +91,6 @@ |
int progress_calls_; |
int64 current_progress_; |
-}; |
- |
-class MockWriterDelegate : public zip::WriterDelegate { |
- public: |
- MOCK_METHOD0(PrepareOutput, bool()); |
- MOCK_METHOD2(WriteBytes, bool(const char*, int)); |
}; |
} // namespace |
@@ -299,7 +287,8 @@ |
EXPECT_LT(static_cast<size_t>(internal::kZipBufSize), output.size()); |
} |
-TEST_F(ZipReaderTest, PlatformFileExtractCurrentEntryToFile_RegularFile) { |
+#if defined(OS_POSIX) |
+TEST_F(ZipReaderTest, PlatformFileExtractCurrentEntryToFd_RegularFile) { |
ZipReader reader; |
FileWrapper zip_fd_wrapper(test_zip_file_, FileWrapper::READ_ONLY); |
ASSERT_TRUE(reader.OpenFromPlatformFile(zip_fd_wrapper.platform_file())); |
@@ -307,16 +296,18 @@ |
base::FilePath out_path = test_dir_.AppendASCII("quux.txt"); |
FileWrapper out_fd_w(out_path, FileWrapper::READ_WRITE); |
ASSERT_TRUE(reader.LocateAndOpenEntry(target_path)); |
- ASSERT_TRUE(reader.ExtractCurrentEntryToFile(out_fd_w.file())); |
+ ASSERT_TRUE(reader.ExtractCurrentEntryToFd(out_fd_w.platform_file())); |
// Read the output file and compute the MD5. |
std::string output; |
- ASSERT_TRUE(base::ReadFileToString(out_path, &output)); |
+ ASSERT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("quux.txt"), |
+ &output)); |
const std::string md5 = base::MD5String(output); |
EXPECT_EQ(kQuuxExpectedMD5, md5); |
// quux.txt should be larger than kZipBufSize so that we can exercise |
// the loop in ExtractCurrentEntry(). |
EXPECT_LT(static_cast<size_t>(internal::kZipBufSize), output.size()); |
} |
+#endif |
TEST_F(ZipReaderTest, ExtractCurrentEntryToFilePath_Directory) { |
ZipReader reader; |
@@ -591,97 +582,4 @@ |
} |
} |
-// Test that when WriterDelegate::PrepareMock returns false, no other methods on |
-// the delegate are called and the extraction fails. |
-TEST_F(ZipReaderTest, ExtractCurrentEntryPrepareFailure) { |
- testing::StrictMock<MockWriterDelegate> mock_writer; |
- |
- EXPECT_CALL(mock_writer, PrepareOutput()) |
- .WillOnce(Return(false)); |
- |
- base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); |
- ZipReader reader; |
- |
- ASSERT_TRUE(reader.Open(test_zip_file_)); |
- ASSERT_TRUE(reader.LocateAndOpenEntry(target_path)); |
- ASSERT_FALSE(reader.ExtractCurrentEntry(&mock_writer)); |
-} |
- |
-// Test that when WriterDelegate::WriteBytes returns false, no other methods on |
-// the delegate are called and the extraction fails. |
-TEST_F(ZipReaderTest, ExtractCurrentEntryWriteBytesFailure) { |
- testing::StrictMock<MockWriterDelegate> mock_writer; |
- |
- EXPECT_CALL(mock_writer, PrepareOutput()) |
- .WillOnce(Return(true)); |
- EXPECT_CALL(mock_writer, WriteBytes(_, _)) |
- .WillOnce(Return(false)); |
- |
- base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); |
- ZipReader reader; |
- |
- ASSERT_TRUE(reader.Open(test_zip_file_)); |
- ASSERT_TRUE(reader.LocateAndOpenEntry(target_path)); |
- ASSERT_FALSE(reader.ExtractCurrentEntry(&mock_writer)); |
-} |
- |
-// Test that extraction succeeds when the writer delegate reports all is well. |
-TEST_F(ZipReaderTest, ExtractCurrentEntrySuccess) { |
- testing::StrictMock<MockWriterDelegate> mock_writer; |
- |
- EXPECT_CALL(mock_writer, PrepareOutput()) |
- .WillOnce(Return(true)); |
- EXPECT_CALL(mock_writer, WriteBytes(_, _)) |
- .WillRepeatedly(Return(true)); |
- |
- base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); |
- ZipReader reader; |
- |
- ASSERT_TRUE(reader.Open(test_zip_file_)); |
- ASSERT_TRUE(reader.LocateAndOpenEntry(target_path)); |
- ASSERT_TRUE(reader.ExtractCurrentEntry(&mock_writer)); |
-} |
- |
-class FileWriterDelegateTest : public ::testing::Test { |
- protected: |
- void SetUp() override { |
- ASSERT_TRUE(base::CreateTemporaryFile(&temp_file_path_)); |
- file_.Initialize(temp_file_path_, (base::File::FLAG_CREATE_ALWAYS | |
- base::File::FLAG_READ | |
- base::File::FLAG_WRITE | |
- base::File::FLAG_TEMPORARY | |
- base::File::FLAG_DELETE_ON_CLOSE)); |
- ASSERT_TRUE(file_.IsValid()); |
- } |
- |
- // Writes data to the file, leaving the current position at the end of the |
- // write. |
- void PopulateFile() { |
- static const char kSomeData[] = "this sure is some data."; |
- static const size_t kSomeDataLen = sizeof(kSomeData) - 1; |
- ASSERT_NE(-1LL, file_.Write(0LL, kSomeData, kSomeDataLen)); |
- } |
- |
- base::FilePath temp_file_path_; |
- base::File file_; |
-}; |
- |
-TEST_F(FileWriterDelegateTest, WriteToStartAndTruncate) { |
- // Write stuff and advance. |
- PopulateFile(); |
- |
- // This should rewind, write, then truncate. |
- static const char kSomeData[] = "short"; |
- static const int kSomeDataLen = sizeof(kSomeData) - 1; |
- { |
- FileWriterDelegate writer(&file_); |
- ASSERT_TRUE(writer.PrepareOutput()); |
- ASSERT_TRUE(writer.WriteBytes(kSomeData, kSomeDataLen)); |
- } |
- ASSERT_EQ(kSomeDataLen, file_.GetLength()); |
- char buf[kSomeDataLen] = {}; |
- ASSERT_EQ(kSomeDataLen, file_.Read(0LL, buf, kSomeDataLen)); |
- ASSERT_EQ(std::string(kSomeData), std::string(buf, kSomeDataLen)); |
-} |
- |
} // namespace zip |