1 // Copyright 2013 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.
5 // This file mocks out just enough of the WebClipboard API for running the
6 // webkit tests. This is so we can run webkit tests without them sharing a
7 // clipboard, which allows for running them in parallel and having the tests
8 // not interact with actual user actions.
10 #ifndef CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
11 #define CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
15 #include "base/strings/string16.h"
16 #include "third_party/WebKit/public/platform/WebClipboard.h"
17 #include "third_party/WebKit/public/platform/WebDragData.h"
18 #include "third_party/WebKit/public/platform/WebImage.h"
22 class MockWebClipboardImpl : public WebKit::WebClipboard {
24 MockWebClipboardImpl();
25 virtual ~MockWebClipboardImpl();
27 virtual bool isFormatAvailable(WebKit::WebClipboard::Format format,
28 WebKit::WebClipboard::Buffer buffer);
29 virtual WebKit::WebVector<WebKit::WebString> readAvailableTypes(
30 WebKit::WebClipboard::Buffer buffer, bool* containsFilenames);
32 virtual WebKit::WebString readPlainText(WebKit::WebClipboard::Buffer buffer);
33 virtual WebKit::WebString readHTML(WebKit::WebClipboard::Buffer buffer,
35 unsigned* fragmentStart,
36 unsigned* fragmentEnd);
37 virtual WebKit::WebData readImage(WebKit::WebClipboard::Buffer buffer);
38 virtual WebKit::WebString readCustomData(WebKit::WebClipboard::Buffer buffer,
39 const WebKit::WebString& type);
41 virtual void writePlainText(const WebKit::WebString& plain_text);
42 virtual void writeHTML(
43 const WebKit::WebString& htmlText, const WebKit::WebURL& url,
44 const WebKit::WebString& plainText, bool writeSmartPaste);
45 virtual void writeURL(
46 const WebKit::WebURL& url, const WebKit::WebString& title);
47 virtual void writeImage(
48 const WebKit::WebImage& image, const WebKit::WebURL& url,
49 const WebKit::WebString& title);
50 virtual void writeDataObject(const WebKit::WebDragData& data);
55 WebKit::WebString m_plainText;
56 WebKit::WebString m_htmlText;
57 WebKit::WebImage m_image;
58 std::map<base::string16, base::string16> m_customData;
59 bool m_writeSmartPaste;
62 } // namespace content
64 #endif // CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_