// Copyright (c) 2012 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 WEBKIT_BLOB_MOCK_BLOB_URL_REQUEST_CONTEXT_H_ #define WEBKIT_BLOB_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 fileapi { class FileSystemContext; } namespace webkit_blob { class BlobDataHandle; class BlobStorageContext; class MockBlobURLRequestContext : public net::URLRequestContext { public: MockBlobURLRequestContext(fileapi::FileSystemContext* file_system_context); virtual ~MockBlobURLRequestContext(); 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_; BlobStorageContext* context_; scoped_ptr handle_; DISALLOW_COPY_AND_ASSIGN(ScopedTextBlob); }; } // namespace webkit_blob #endif // WEBKIT_BLOB_MOCK_BLOB_URL_REQUEST_CONTEXT_H_