Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / public / test / mock_blob_url_request_context.cc
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 #include "content/public/test/mock_blob_url_request_context.h"
6
7 #include "storage/browser/blob/blob_storage_context.h"
8 #include "storage/browser/blob/blob_url_request_job.h"
9 #include "storage/browser/blob/blob_url_request_job_factory.h"
10 #include "storage/common/blob/blob_data.h"
11
12
13 namespace content {
14
15 MockBlobURLRequestContext::MockBlobURLRequestContext(
16     storage::FileSystemContext* file_system_context)
17     : blob_storage_context_(new storage::BlobStorageContext) {
18   // Job factory owns the protocol handler.
19   job_factory_.SetProtocolHandler(
20       "blob",
21       new storage::BlobProtocolHandler(blob_storage_context_.get(),
22                                        file_system_context,
23                                        base::MessageLoopProxy::current()));
24   set_job_factory(&job_factory_);
25 }
26
27 MockBlobURLRequestContext::~MockBlobURLRequestContext() {
28   AssertNoURLRequests();
29 }
30
31 ScopedTextBlob::ScopedTextBlob(
32     const MockBlobURLRequestContext& request_context,
33     const std::string& blob_id,
34     const std::string& data)
35     : blob_id_(blob_id),
36       context_(request_context.blob_storage_context()) {
37   DCHECK(context_);
38   scoped_refptr<storage::BlobData> blob_data(new storage::BlobData(blob_id_));
39   if (!data.empty())
40     blob_data->AppendData(data);
41   handle_ = context_->AddFinishedBlob(blob_data.get());
42 }
43
44 ScopedTextBlob::~ScopedTextBlob() {
45 }
46
47 scoped_ptr<storage::BlobDataHandle> ScopedTextBlob::GetBlobDataHandle() {
48   return context_->GetBlobDataFromUUID(blob_id_);
49 }
50
51 }  // namespace content