blob: fdf46fa57632bdeea53511d8d8f8886ed872f892 [file] [log] [blame]
// 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.
#ifndef CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_
#define CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_
#include "base/macros.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job.h"
#include "net/url_request/url_request_job_factory_impl.h"
namespace storage {
class FileSystemContext;
}
namespace storage {
class BlobDataHandle;
class BlobStorageContext;
}
namespace content {
class MockBlobURLRequestContext : public net::URLRequestContext {
public:
MockBlobURLRequestContext(storage::FileSystemContext* file_system_context);
~MockBlobURLRequestContext() override;
storage::BlobStorageContext* blob_storage_context() const {
return blob_storage_context_.get();
}
private:
net::URLRequestJobFactoryImpl job_factory_;
std::unique_ptr<storage::BlobStorageContext> blob_storage_context_;
DISALLOW_COPY_AND_ASSIGN(MockBlobURLRequestContext);
};
class ScopedTextBlob {
public:
// Registers a blob with the given |id| that contains |data|.
ScopedTextBlob(const MockBlobURLRequestContext& request_context,
const std::string& blob_id,
const std::string& data);
~ScopedTextBlob();
// Returns a BlobDataHandle referring to the scoped blob.
std::unique_ptr<storage::BlobDataHandle> GetBlobDataHandle();
private:
const std::string blob_id_;
storage::BlobStorageContext* context_;
std::unique_ptr<storage::BlobDataHandle> handle_;
DISALLOW_COPY_AND_ASSIGN(ScopedTextBlob);
};
} // namespace content
#endif // CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_