blob: a5d1acc8a4c4ce671f321555b6d76231feb2a56a [file] [log] [blame]
// 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<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.
scoped_ptr<BlobDataHandle> GetBlobDataHandle();
private:
const std::string blob_id_;
BlobStorageContext* context_;
scoped_ptr<BlobDataHandle> handle_;
DISALLOW_COPY_AND_ASSIGN(ScopedTextBlob);
};
} // namespace webkit_blob
#endif // WEBKIT_BLOB_MOCK_BLOB_URL_REQUEST_CONTEXT_H_