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