Index: webkit/fileapi/webfilewriter_base_unittest.cc |
diff --git a/webkit/fileapi/webfilewriter_base_unittest.cc b/webkit/fileapi/webfilewriter_base_unittest.cc |
deleted file mode 100644 |
index 828d90413e9004fb0c2d89632320eed18b1cb582..0000000000000000000000000000000000000000 |
--- a/webkit/fileapi/webfilewriter_base_unittest.cc |
+++ /dev/null |
@@ -1,411 +0,0 @@ |
-// Copyright (c) 2011 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 "webkit/fileapi/webfilewriter_base.h" |
- |
-#include "base/logging.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/message_loop.h" |
-#include "base/utf_string_conversions.h" |
-#include "googleurl/src/gurl.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "third_party/WebKit/Source/Platform/chromium/public/WebURL.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileError.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileWriterClient.h" |
- |
-namespace fileapi { |
- |
-namespace { |
- |
-// We use particular offsets to trigger particular behaviors |
-// in the TestableFileWriter. |
-const int kNoOffset = -1; |
-const int kBasicFileTruncate_Offset = 1; |
-const int kErrorFileTruncate_Offset = 2; |
-const int kCancelFileTruncate_Offset = 3; |
-const int kCancelFailedTruncate_Offset = 4; |
-const int kBasicFileWrite_Offset = 1; |
-const int kErrorFileWrite_Offset = 2; |
-const int kMultiFileWrite_Offset = 3; |
-const int kCancelFileWriteBeforeCompletion_Offset = 4; |
-const int kCancelFileWriteAfterCompletion_Offset = 5; |
- |
-GURL mock_path_as_gurl() { |
- return GURL("MockPath"); |
-} |
- |
-} // namespace |
- |
-class TestableFileWriter : public WebFileWriterBase { |
- public: |
- explicit TestableFileWriter(WebKit::WebFileWriterClient* client) |
- : WebFileWriterBase(mock_path_as_gurl(), client) { |
- reset(); |
- } |
- |
- void reset() { |
- received_truncate_ = false; |
- received_truncate_path_ = GURL(); |
- received_truncate_offset_ = kNoOffset; |
- received_write_ = false; |
- received_write_path_ = GURL(); |
- received_write_offset_ = kNoOffset; |
- received_write_blob_url_ = GURL(); |
- received_cancel_ = false; |
- } |
- |
- bool received_truncate_; |
- GURL received_truncate_path_; |
- int64 received_truncate_offset_; |
- bool received_write_; |
- GURL received_write_path_; |
- GURL received_write_blob_url_; |
- int64 received_write_offset_; |
- bool received_cancel_; |
- |
- protected: |
- virtual void DoTruncate(const GURL& path, int64 offset) OVERRIDE { |
- received_truncate_ = true; |
- received_truncate_path_ = path; |
- received_truncate_offset_ = offset; |
- |
- if (offset == kBasicFileTruncate_Offset) { |
- DidSucceed(); |
- } else if (offset == kErrorFileTruncate_Offset) { |
- DidFail(base::PLATFORM_FILE_ERROR_NOT_FOUND); |
- } else if (offset == kCancelFileTruncate_Offset) { |
- cancel(); |
- DidSucceed(); // truncate completion |
- DidSucceed(); // cancel completion |
- } else if (offset == kCancelFailedTruncate_Offset) { |
- cancel(); |
- DidFail(base::PLATFORM_FILE_ERROR_NOT_FOUND); // truncate completion |
- DidSucceed(); // cancel completion |
- } else { |
- FAIL(); |
- } |
- } |
- |
- virtual void DoWrite(const GURL& path, const GURL& blob_url, |
- int64 offset) OVERRIDE { |
- received_write_ = true; |
- received_write_path_ = path; |
- received_write_offset_ = offset; |
- received_write_blob_url_ = blob_url; |
- |
- if (offset == kBasicFileWrite_Offset) { |
- DidWrite(1, true); |
- } else if (offset == kErrorFileWrite_Offset) { |
- DidFail(base::PLATFORM_FILE_ERROR_NOT_FOUND); |
- } else if (offset == kMultiFileWrite_Offset) { |
- DidWrite(1, false); |
- DidWrite(1, false); |
- DidWrite(1, true); |
- } else if (offset == kCancelFileWriteBeforeCompletion_Offset) { |
- DidWrite(1, false); |
- cancel(); |
- DidWrite(1, false); |
- DidWrite(1, false); |
- DidFail(base::PLATFORM_FILE_ERROR_FAILED); // write completion |
- DidSucceed(); // cancel completion |
- } else if (offset == kCancelFileWriteAfterCompletion_Offset) { |
- DidWrite(1, false); |
- cancel(); |
- DidWrite(1, false); |
- DidWrite(1, false); |
- DidWrite(1, true); // write completion |
- DidFail(base::PLATFORM_FILE_ERROR_FAILED); // cancel completion |
- } else { |
- FAIL(); |
- } |
- } |
- |
- virtual void DoCancel() OVERRIDE { |
- received_cancel_ = true; |
- } |
-}; |
- |
-class FileWriterTest : public testing::Test, |
- public WebKit::WebFileWriterClient { |
- public: |
- FileWriterTest() { |
- reset(); |
- } |
- |
- WebKit::WebFileWriter* writer() { |
- return testable_writer_.get(); |
- } |
- |
- // WebFileWriterClient overrides |
- virtual void didWrite(long long bytes, bool complete) { |
- EXPECT_FALSE(received_did_write_complete_); |
- ++received_did_write_count_; |
- received_did_write_bytes_total_ += bytes; |
- if (complete) |
- received_did_write_complete_ = true; |
- |
- if (delete_in_client_callback_) |
- testable_writer_.reset(NULL); |
- } |
- |
- virtual void didTruncate() { |
- EXPECT_FALSE(received_did_truncate_); |
- received_did_truncate_ = true; |
- if (delete_in_client_callback_) |
- testable_writer_.reset(NULL); |
- } |
- |
- virtual void didFail(WebKit::WebFileError error) { |
- EXPECT_FALSE(received_did_fail_); |
- received_did_fail_ = true; |
- fail_error_received_ = error; |
- if (delete_in_client_callback_) |
- testable_writer_.reset(NULL); |
- } |
- |
- protected: |
- void reset() { |
- testable_writer_.reset(new TestableFileWriter(this)); |
- delete_in_client_callback_ = false; |
- received_did_write_count_ = 0; |
- received_did_write_bytes_total_ = 0; |
- received_did_write_complete_ = false; |
- received_did_truncate_ = false; |
- received_did_fail_ = false; |
- fail_error_received_ = static_cast<WebKit::WebFileError>(0); |
- } |
- |
- scoped_ptr<TestableFileWriter> testable_writer_; |
- bool delete_in_client_callback_; |
- |
- // Observed WebFileWriterClient artifacts. |
- int received_did_write_count_; |
- long long received_did_write_bytes_total_; |
- bool received_did_write_complete_; |
- bool received_did_truncate_; |
- bool received_did_fail_; |
- WebKit::WebFileError fail_error_received_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FileWriterTest); |
-}; |
- |
-TEST_F(FileWriterTest, BasicFileWrite) { |
- // Call the webkit facing api. |
- const GURL kBlobUrl("blob://bloburl/"); |
- writer()->write(kBasicFileWrite_Offset, kBlobUrl); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_write_); |
- EXPECT_EQ(testable_writer_->received_write_path_, |
- mock_path_as_gurl()); |
- EXPECT_EQ(kBasicFileWrite_Offset, |
- testable_writer_->received_write_offset_); |
- EXPECT_EQ(kBlobUrl, testable_writer_->received_write_blob_url_); |
- EXPECT_FALSE(testable_writer_->received_truncate_); |
- EXPECT_FALSE(testable_writer_->received_cancel_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_EQ(1, received_did_write_count_); |
- EXPECT_TRUE(received_did_write_complete_); |
- EXPECT_EQ(1, received_did_write_bytes_total_); |
- EXPECT_FALSE(received_did_truncate_); |
- EXPECT_FALSE(received_did_fail_); |
-} |
- |
-TEST_F(FileWriterTest, BasicFileTruncate) { |
- // Call the webkit facing api. |
- writer()->truncate(kBasicFileTruncate_Offset); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_truncate_); |
- EXPECT_EQ(mock_path_as_gurl(), |
- testable_writer_->received_truncate_path_); |
- EXPECT_EQ(kBasicFileTruncate_Offset, |
- testable_writer_->received_truncate_offset_); |
- EXPECT_FALSE(testable_writer_->received_write_); |
- EXPECT_FALSE(testable_writer_->received_cancel_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_truncate_); |
- EXPECT_EQ(0, received_did_write_count_); |
- EXPECT_FALSE(received_did_fail_); |
-} |
- |
-TEST_F(FileWriterTest, ErrorFileWrite) { |
- // Call the webkit facing api. |
- const GURL kBlobUrl("blob://bloburl/"); |
- writer()->write(kErrorFileWrite_Offset, kBlobUrl); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_write_); |
- EXPECT_EQ(testable_writer_->received_write_path_, |
- mock_path_as_gurl()); |
- EXPECT_EQ(kErrorFileWrite_Offset, |
- testable_writer_->received_write_offset_); |
- EXPECT_EQ(kBlobUrl, testable_writer_->received_write_blob_url_); |
- EXPECT_FALSE(testable_writer_->received_truncate_); |
- EXPECT_FALSE(testable_writer_->received_cancel_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorNotFound, fail_error_received_); |
- EXPECT_EQ(0, received_did_write_count_); |
- EXPECT_FALSE(received_did_truncate_); |
-} |
- |
-TEST_F(FileWriterTest, ErrorFileTruncate) { |
- // Call the webkit facing api. |
- writer()->truncate(kErrorFileTruncate_Offset); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_truncate_); |
- EXPECT_EQ(mock_path_as_gurl(), |
- testable_writer_->received_truncate_path_); |
- EXPECT_EQ(kErrorFileTruncate_Offset, |
- testable_writer_->received_truncate_offset_); |
- EXPECT_FALSE(testable_writer_->received_write_); |
- EXPECT_FALSE(testable_writer_->received_cancel_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorNotFound, fail_error_received_); |
- EXPECT_FALSE(received_did_truncate_); |
- EXPECT_EQ(0, received_did_write_count_); |
-} |
- |
-TEST_F(FileWriterTest, MultiFileWrite) { |
- // Call the webkit facing api. |
- const GURL kBlobUrl("blob://bloburl/"); |
- writer()->write(kMultiFileWrite_Offset, kBlobUrl); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_write_); |
- EXPECT_EQ(testable_writer_->received_write_path_, |
- mock_path_as_gurl()); |
- EXPECT_EQ(kMultiFileWrite_Offset, |
- testable_writer_->received_write_offset_); |
- EXPECT_EQ(kBlobUrl, testable_writer_->received_write_blob_url_); |
- EXPECT_FALSE(testable_writer_->received_truncate_); |
- EXPECT_FALSE(testable_writer_->received_cancel_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_EQ(3, received_did_write_count_); |
- EXPECT_TRUE(received_did_write_complete_); |
- EXPECT_EQ(3, received_did_write_bytes_total_); |
- EXPECT_FALSE(received_did_truncate_); |
- EXPECT_FALSE(received_did_fail_); |
-} |
- |
-TEST_F(FileWriterTest, CancelFileWriteBeforeCompletion) { |
- // Call the webkit facing api. |
- const GURL kBlobUrl("blob://bloburl/"); |
- writer()->write(kCancelFileWriteBeforeCompletion_Offset, kBlobUrl); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_write_); |
- EXPECT_EQ(testable_writer_->received_write_path_, |
- mock_path_as_gurl()); |
- EXPECT_EQ(kCancelFileWriteBeforeCompletion_Offset, |
- testable_writer_->received_write_offset_); |
- EXPECT_EQ(kBlobUrl, testable_writer_->received_write_blob_url_); |
- EXPECT_TRUE(testable_writer_->received_cancel_); |
- EXPECT_FALSE(testable_writer_->received_truncate_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorAbort, fail_error_received_); |
- EXPECT_EQ(1, received_did_write_count_); |
- EXPECT_FALSE(received_did_write_complete_); |
- EXPECT_EQ(1, received_did_write_bytes_total_); |
- EXPECT_FALSE(received_did_truncate_); |
-} |
- |
-TEST_F(FileWriterTest, CancelFileWriteAfterCompletion) { |
- // Call the webkit facing api. |
- const GURL kBlobUrl("blob://bloburl/"); |
- writer()->write(kCancelFileWriteAfterCompletion_Offset, kBlobUrl); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_write_); |
- EXPECT_EQ(testable_writer_->received_write_path_, |
- mock_path_as_gurl()); |
- EXPECT_EQ(kCancelFileWriteAfterCompletion_Offset, |
- testable_writer_->received_write_offset_); |
- EXPECT_EQ(kBlobUrl, testable_writer_->received_write_blob_url_); |
- EXPECT_TRUE(testable_writer_->received_cancel_); |
- EXPECT_FALSE(testable_writer_->received_truncate_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorAbort, fail_error_received_); |
- EXPECT_EQ(1, received_did_write_count_); |
- EXPECT_FALSE(received_did_write_complete_); |
- EXPECT_EQ(1, received_did_write_bytes_total_); |
- EXPECT_FALSE(received_did_truncate_); |
-} |
- |
-TEST_F(FileWriterTest, CancelFileTruncate) { |
- // Call the webkit facing api. |
- writer()->truncate(kCancelFileTruncate_Offset); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_truncate_); |
- EXPECT_EQ(mock_path_as_gurl(), |
- testable_writer_->received_truncate_path_); |
- EXPECT_EQ(kCancelFileTruncate_Offset, |
- testable_writer_->received_truncate_offset_); |
- EXPECT_TRUE(testable_writer_->received_cancel_); |
- EXPECT_FALSE(testable_writer_->received_write_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorAbort, fail_error_received_); |
- EXPECT_FALSE(received_did_truncate_); |
- EXPECT_EQ(0, received_did_write_count_); |
-} |
- |
-TEST_F(FileWriterTest, CancelFailedTruncate) { |
- // Call the webkit facing api. |
- writer()->truncate(kCancelFailedTruncate_Offset); |
- |
- // Check that the derived class gets called correctly. |
- EXPECT_TRUE(testable_writer_->received_truncate_); |
- EXPECT_EQ(mock_path_as_gurl(), |
- testable_writer_->received_truncate_path_); |
- EXPECT_EQ(kCancelFailedTruncate_Offset, |
- testable_writer_->received_truncate_offset_); |
- EXPECT_TRUE(testable_writer_->received_cancel_); |
- EXPECT_FALSE(testable_writer_->received_write_); |
- |
- // Check that the client gets called correctly. |
- EXPECT_TRUE(received_did_fail_); |
- EXPECT_EQ(WebKit::WebFileErrorAbort, fail_error_received_); |
- EXPECT_FALSE(received_did_truncate_); |
- EXPECT_EQ(0, received_did_write_count_); |
-} |
- |
-TEST_F(FileWriterTest, DeleteInCompletionCallbacks) { |
- delete_in_client_callback_ = true; |
- writer()->write(kBasicFileWrite_Offset, GURL("blob://bloburl/")); |
- EXPECT_FALSE(testable_writer_.get()); |
- |
- reset(); |
- delete_in_client_callback_ = true; |
- writer()->truncate(kBasicFileTruncate_Offset); |
- EXPECT_FALSE(testable_writer_.get()); |
- |
- reset(); |
- delete_in_client_callback_ = true; |
- writer()->write(kErrorFileWrite_Offset, GURL("blob://bloburl/")); |
- EXPECT_FALSE(testable_writer_.get()); |
- |
- reset(); |
- delete_in_client_callback_ = true; |
- writer()->truncate(kErrorFileTruncate_Offset); |
- EXPECT_FALSE(testable_writer_.get()); |
- |
- // Not crashing counts as passing. |
-} |
- |
-} // namespace fileapi |