Home | History | Annotate | Download | only in test
      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 uint64_t sequenceNumber(Buffer);
     29   virtual bool isFormatAvailable(blink::WebClipboard::Format format,
     30                                  blink::WebClipboard::Buffer buffer);
     31   virtual blink::WebVector<blink::WebString> readAvailableTypes(
     32       blink::WebClipboard::Buffer buffer, bool* containsFilenames);
     33 
     34   virtual blink::WebString readPlainText(blink::WebClipboard::Buffer buffer);
     35   virtual blink::WebString readHTML(blink::WebClipboard::Buffer buffer,
     36                                      blink::WebURL* url,
     37                                      unsigned* fragmentStart,
     38                                      unsigned* fragmentEnd);
     39   virtual blink::WebData readImage(blink::WebClipboard::Buffer buffer);
     40   virtual blink::WebString readCustomData(blink::WebClipboard::Buffer buffer,
     41                                            const blink::WebString& type);
     42 
     43   virtual void writePlainText(const blink::WebString& plain_text);
     44   virtual void writeHTML(
     45       const blink::WebString& htmlText, const blink::WebURL& url,
     46       const blink::WebString& plainText, bool writeSmartPaste);
     47   virtual void writeURL(
     48       const blink::WebURL& url, const blink::WebString& title);
     49   virtual void writeImage(
     50       const blink::WebImage& image, const blink::WebURL& url,
     51       const blink::WebString& title);
     52   virtual void writeDataObject(const blink::WebDragData& data);
     53 
     54  private:
     55   void clear();
     56 
     57   uint64_t m_sequenceNumber;
     58   base::NullableString16 m_plainText;
     59   base::NullableString16 m_htmlText;
     60   blink::WebImage m_image;
     61   std::map<base::string16, base::string16> m_customData;
     62   bool m_writeSmartPaste;
     63 };
     64 
     65 }  // namespace content
     66 
     67 #endif  // CONTENT_TEST_MOCK_WEBCLIPBOARD_IMPL_H_
     68