// 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 "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_; scoped_ptr 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. scoped_ptr GetBlobDataHandle(); private: const std::string blob_id_; storage::BlobStorageContext* context_; scoped_ptr handle_; DISALLOW_COPY_AND_ASSIGN(ScopedTextBlob); }; } // namespace content #endif // CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_