| Index: chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc b/chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc
|
| deleted file mode 100644
|
| index 4943a9535375f7c026d577beb4875a99ba5b8a59..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc
|
| +++ /dev/null
|
| @@ -1,204 +0,0 @@
|
| -// Copyright 2014 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 "chrome/browser/extensions/api/image_writer_private/error_messages.h"
|
| -#include "chrome/browser/extensions/api/image_writer_private/test_utils.h"
|
| -#include "chrome/browser/extensions/api/image_writer_private/write_from_url_operation.h"
|
| -#include "chrome/test/base/testing_profile.h"
|
| -#include "content/test/net/url_request_prepackaged_interceptor.h"
|
| -#include "net/url_request/url_fetcher.h"
|
| -
|
| -namespace extensions {
|
| -namespace image_writer {
|
| -
|
| -namespace {
|
| -
|
| -using testing::_;
|
| -using testing::AnyNumber;
|
| -using testing::AtLeast;
|
| -using testing::Gt;
|
| -using testing::Lt;
|
| -
|
| -const char kTestImageUrl[] = "http://localhost/test/image.zip";
|
| -
|
| -typedef content::URLLocalHostRequestPrepackagedInterceptor GetInterceptor;
|
| -
|
| -// This class gives us a generic Operation with the ability to set or inspect
|
| -// the current path to the image file.
|
| -class OperationForTest : public WriteFromUrlOperation {
|
| - public:
|
| - OperationForTest(base::WeakPtr<OperationManager> manager_,
|
| - const ExtensionId& extension_id,
|
| - net::URLRequestContextGetter* request_context,
|
| - GURL url,
|
| - const std::string& hash,
|
| - const std::string& storage_unit_id)
|
| - : WriteFromUrlOperation(manager_,
|
| - extension_id,
|
| - request_context,
|
| - url,
|
| - hash,
|
| - storage_unit_id) {}
|
| -
|
| - virtual void StartImpl() OVERRIDE {}
|
| -
|
| - // Expose stages for testing.
|
| - void GetDownloadTarget(const base::Closure& continuation) {
|
| - WriteFromUrlOperation::GetDownloadTarget(continuation);
|
| - }
|
| -
|
| - void Download(const base::Closure& continuation) {
|
| - WriteFromUrlOperation::Download(continuation);
|
| - }
|
| -
|
| - void VerifyDownload(const base::Closure& continuation) {
|
| - WriteFromUrlOperation::VerifyDownload(continuation);
|
| - }
|
| -
|
| - // Helpers to set-up state for intermediate stages.
|
| - void SetImagePath(const base::FilePath image_path) {
|
| - image_path_ = image_path;
|
| - }
|
| -
|
| - base::FilePath GetImagePath() { return image_path_; }
|
| -
|
| - private:
|
| - virtual ~OperationForTest() {};
|
| -};
|
| -
|
| -class ImageWriterWriteFromUrlOperationTest : public ImageWriterUnitTestBase {
|
| - protected:
|
| - ImageWriterWriteFromUrlOperationTest() : manager_(&test_profile_) {}
|
| -
|
| - virtual void SetUp() OVERRIDE {
|
| - ImageWriterUnitTestBase::SetUp();
|
| -
|
| - // Turn on interception and set up our dummy file.
|
| - net::URLFetcher::SetEnableInterceptionForTests(true);
|
| - get_interceptor_.reset(new GetInterceptor());
|
| - get_interceptor_->SetResponse(GURL(kTestImageUrl), test_image_path_);
|
| - }
|
| -
|
| - virtual void TearDown() OVERRIDE {
|
| - ImageWriterUnitTestBase::TearDown();
|
| -
|
| - // Remember to turn off global interception.
|
| - net::URLFetcher::SetEnableInterceptionForTests(false);
|
| - }
|
| -
|
| - scoped_refptr<OperationForTest> CreateOperation(const GURL& url,
|
| - const std::string& hash) {
|
| - scoped_refptr<OperationForTest> operation(
|
| - new OperationForTest(manager_.AsWeakPtr(),
|
| - kDummyExtensionId,
|
| - test_profile_.GetRequestContext(),
|
| - url,
|
| - hash,
|
| - test_device_path_.AsUTF8Unsafe()));
|
| - operation->Start();
|
| - return operation;
|
| - }
|
| -
|
| - TestingProfile test_profile_;
|
| - scoped_ptr<GetInterceptor> get_interceptor_;
|
| -
|
| - MockOperationManager manager_;
|
| -};
|
| -
|
| -TEST_F(ImageWriterWriteFromUrlOperationTest, SelectTargetWithoutExtension) {
|
| - scoped_refptr<OperationForTest> operation =
|
| - CreateOperation(GURL("http://localhost/foo/bar"), "");
|
| -
|
| - operation->GetDownloadTarget(base::Bind(&base::DoNothing));
|
| -
|
| - EXPECT_EQ(FILE_PATH_LITERAL("bar"),
|
| - operation->GetImagePath().BaseName().value());
|
| -}
|
| -
|
| -TEST_F(ImageWriterWriteFromUrlOperationTest, SelectTargetWithExtension) {
|
| - scoped_refptr<OperationForTest> operation =
|
| - CreateOperation(GURL("http://localhost/foo/bar.zip"), "");
|
| -
|
| - operation->GetDownloadTarget(base::Bind(&base::DoNothing));
|
| -
|
| - EXPECT_EQ(FILE_PATH_LITERAL("bar.zip"),
|
| - operation->GetImagePath().BaseName().value());
|
| -}
|
| -
|
| -TEST_F(ImageWriterWriteFromUrlOperationTest, DownloadFile) {
|
| - // This test actually triggers the URL fetch code, which will drain the
|
| - // message queues while waiting for IO, thus we have to run until the
|
| - // operation completes.
|
| - base::RunLoop runloop;
|
| - base::Closure quit_closure = runloop.QuitClosure();
|
| - base::FilePath download_target_path;
|
| - scoped_refptr<OperationForTest> operation =
|
| - CreateOperation(GURL(kTestImageUrl), "");
|
| -
|
| - EXPECT_TRUE(
|
| - base::CreateTemporaryFileInDir(temp_dir_.path(), &download_target_path));
|
| - operation->SetImagePath(download_target_path);
|
| -
|
| - EXPECT_CALL(
|
| - manager_,
|
| - OnProgress(kDummyExtensionId, image_writer_api::STAGE_DOWNLOAD, _))
|
| - .Times(AtLeast(1));
|
| - EXPECT_CALL(
|
| - manager_,
|
| - OnProgress(kDummyExtensionId, image_writer_api::STAGE_DOWNLOAD, 0))
|
| - .Times(AnyNumber());
|
| - EXPECT_CALL(
|
| - manager_,
|
| - OnProgress(kDummyExtensionId, image_writer_api::STAGE_DOWNLOAD, 100))
|
| - .Times(AnyNumber());
|
| -
|
| - content::BrowserThread::PostTask(
|
| - content::BrowserThread::FILE,
|
| - FROM_HERE,
|
| - base::Bind(&OperationForTest::Download, operation, quit_closure));
|
| -
|
| - runloop.Run();
|
| -
|
| - EXPECT_TRUE(base::ContentsEqual(test_image_path_, operation->GetImagePath()));
|
| -
|
| - EXPECT_EQ(1, get_interceptor_->GetHitCount());
|
| -}
|
| -
|
| -TEST_F(ImageWriterWriteFromUrlOperationTest, VerifyFile) {
|
| - scoped_ptr<char[]> data_buffer(new char[kTestFileSize]);
|
| - base::ReadFile(test_image_path_, data_buffer.get(), kTestFileSize);
|
| - base::MD5Digest expected_digest;
|
| - base::MD5Sum(data_buffer.get(), kTestFileSize, &expected_digest);
|
| - std::string expected_hash = base::MD5DigestToBase16(expected_digest);
|
| -
|
| - scoped_refptr<OperationForTest> operation =
|
| - CreateOperation(GURL(""), expected_hash);
|
| -
|
| - EXPECT_CALL(
|
| - manager_,
|
| - OnProgress(kDummyExtensionId, image_writer_api::STAGE_VERIFYDOWNLOAD, _))
|
| - .Times(AtLeast(1));
|
| - EXPECT_CALL(
|
| - manager_,
|
| - OnProgress(kDummyExtensionId, image_writer_api::STAGE_VERIFYDOWNLOAD, 0))
|
| - .Times(AtLeast(1));
|
| - EXPECT_CALL(manager_,
|
| - OnProgress(kDummyExtensionId,
|
| - image_writer_api::STAGE_VERIFYDOWNLOAD,
|
| - 100)).Times(AtLeast(1));
|
| -
|
| - operation->SetImagePath(test_image_path_);
|
| - content::BrowserThread::PostTask(content::BrowserThread::FILE,
|
| - FROM_HERE,
|
| - base::Bind(&OperationForTest::VerifyDownload,
|
| - operation,
|
| - base::Bind(&base::DoNothing)));
|
| -
|
| - base::RunLoop().RunUntilIdle();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -} // namespace image_writer
|
| -} // namespace extensions
|
|
|