• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 //
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.
9 
10 #ifndef CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
11 #define CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
12 
13 #include <map>
14 
15 #include "base/strings/nullable_string16.h"
16 #include "base/strings/string16.h"
17 #include "third_party/WebKit/public/platform/WebClipboard.h"
18 #include "third_party/WebKit/public/platform/WebDragData.h"
19 #include "third_party/WebKit/public/platform/WebImage.h"
20 
21 namespace content {
22 
23 class MockWebClipboardImpl : public blink::WebClipboard {
24  public:
25   MockWebClipboardImpl();
26   virtual ~MockWebClipboardImpl();
27 
28   virtual bool isFormatAvailable(blink::WebClipboard::Format format,
29                                  blink::WebClipboard::Buffer buffer);
30   virtual blink::WebVector<blink::WebString> readAvailableTypes(
31       blink::WebClipboard::Buffer buffer, bool* containsFilenames);
32 
33   virtual blink::WebString readPlainText(blink::WebClipboard::Buffer buffer);
34   virtual blink::WebString readHTML(blink::WebClipboard::Buffer buffer,
35                                      blink::WebURL* url,
36                                      unsigned* fragmentStart,
37                                      unsigned* fragmentEnd);
38   virtual blink::WebData readImage(blink::WebClipboard::Buffer buffer);
39   virtual blink::WebString readCustomData(blink::WebClipboard::Buffer buffer,
40                                            const blink::WebString& type);
41 
42   virtual void writePlainText(const blink::WebString& plain_text);
43   virtual void writeHTML(
44       const blink::WebString& htmlText, const blink::WebURL& url,
45       const blink::WebString& plainText, bool writeSmartPaste);
46   virtual void writeURL(
47       const blink::WebURL& url, const blink::WebString& title);
48   virtual void writeImage(
49       const blink::WebImage& image, const blink::WebURL& url,
50       const blink::WebString& title);
51   virtual void writeDataObject(const blink::WebDragData& data);
52 
53  private:
54   void clear();
55 
56   base::NullableString16 m_plainText;
57   base::NullableString16 m_htmlText;
58   blink::WebImage m_image;
59   std::map<base::string16, base::string16> m_customData;
60   bool m_writeSmartPaste;
61 };
62 
63 }  // namespace content
64 
65 #endif  // CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
66