blob: 9b2fcf4c826580babdea06589d8d02e49ec465dd [file] [log] [blame]
// Copyright 2013 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.
//
// This file mocks out just enough of the WebClipboard API for running the
// webkit tests. This is so we can run webkit tests without them sharing a
// clipboard, which allows for running them in parallel and having the tests
// not interact with actual user actions.
#ifndef CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
#define CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
#include <map>
#include "base/strings/string16.h"
#include "third_party/WebKit/public/platform/WebClipboard.h"
#include "third_party/WebKit/public/platform/WebDragData.h"
#include "third_party/WebKit/public/platform/WebImage.h"
namespace content {
class MockWebClipboardImpl : public WebKit::WebClipboard {
public:
MockWebClipboardImpl();
virtual ~MockWebClipboardImpl();
virtual bool isFormatAvailable(WebKit::WebClipboard::Format format,
WebKit::WebClipboard::Buffer buffer);
virtual WebKit::WebVector<WebKit::WebString> readAvailableTypes(
WebKit::WebClipboard::Buffer buffer, bool* containsFilenames);
virtual WebKit::WebString readPlainText(WebKit::WebClipboard::Buffer buffer);
virtual WebKit::WebString readHTML(WebKit::WebClipboard::Buffer buffer,
WebKit::WebURL* url,
unsigned* fragmentStart,
unsigned* fragmentEnd);
virtual WebKit::WebData readImage(WebKit::WebClipboard::Buffer buffer);
virtual WebKit::WebString readCustomData(WebKit::WebClipboard::Buffer buffer,
const WebKit::WebString& type);
virtual void writePlainText(const WebKit::WebString& plain_text);
virtual void writeHTML(
const WebKit::WebString& htmlText, const WebKit::WebURL& url,
const WebKit::WebString& plainText, bool writeSmartPaste);
virtual void writeURL(
const WebKit::WebURL& url, const WebKit::WebString& title);
virtual void writeImage(
const WebKit::WebImage& image, const WebKit::WebURL& url,
const WebKit::WebString& title);
virtual void writeDataObject(const WebKit::WebDragData& data);
private:
void clear();
WebKit::WebString m_plainText;
WebKit::WebString m_htmlText;
WebKit::WebImage m_image;
std::map<base::string16, base::string16> m_customData;
bool m_writeSmartPaste;
};
} // namespace content
#endif // CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_