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 21namespace content { 22 23class 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