1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_ 6#define CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_ 7 8#include "net/url_request/url_request_context.h" 9#include "net/url_request/url_request_job.h" 10#include "net/url_request/url_request_job_factory_impl.h" 11 12namespace fileapi { 13class FileSystemContext; 14} 15 16namespace webkit_blob { 17class BlobDataHandle; 18class BlobStorageContext; 19} 20 21namespace content { 22 23class MockBlobURLRequestContext : public net::URLRequestContext { 24 public: 25 MockBlobURLRequestContext(fileapi::FileSystemContext* file_system_context); 26 virtual ~MockBlobURLRequestContext(); 27 28 webkit_blob::BlobStorageContext* blob_storage_context() const { 29 return blob_storage_context_.get(); 30 } 31 32 private: 33 net::URLRequestJobFactoryImpl job_factory_; 34 scoped_ptr<webkit_blob::BlobStorageContext> blob_storage_context_; 35 36 DISALLOW_COPY_AND_ASSIGN(MockBlobURLRequestContext); 37}; 38 39class ScopedTextBlob { 40 public: 41 // Registers a blob with the given |id| that contains |data|. 42 ScopedTextBlob(const MockBlobURLRequestContext& request_context, 43 const std::string& blob_id, 44 const std::string& data); 45 ~ScopedTextBlob(); 46 47 // Returns a BlobDataHandle referring to the scoped blob. 48 scoped_ptr<webkit_blob::BlobDataHandle> GetBlobDataHandle(); 49 50 private: 51 const std::string blob_id_; 52 webkit_blob::BlobStorageContext* context_; 53 scoped_ptr<webkit_blob::BlobDataHandle> handle_; 54 55 DISALLOW_COPY_AND_ASSIGN(ScopedTextBlob); 56}; 57 58} // namespace content 59 60#endif // CONTENT_PUBLIC_TEST_MOCK_BLOB_URL_REQUEST_CONTEXT_H_ 61