1 // Copyright 2018 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 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_MOCK_CLIPBOARD_HOST_H_
6 #define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_MOCK_CLIPBOARD_HOST_H_
7 
8 #include <map>
9 
10 #include "build/build_config.h"
11 #include "mojo/public/cpp/bindings/receiver_set.h"
12 #include "third_party/blink/public/common/common_export.h"
13 #include "third_party/blink/public/mojom/clipboard/clipboard.mojom-blink.h"
14 #include "third_party/skia/include/core/SkBitmap.h"
15 
16 namespace blink {
17 
18 class MockClipboardHost : public mojom::blink::ClipboardHost {
19  public:
20   MockClipboardHost();
21   ~MockClipboardHost() override;
22 
23   void Bind(mojo::PendingReceiver<mojom::blink::ClipboardHost> receiver);
24   void Reset();
25 
26  private:
27   // mojom::ClipboardHost
28   void GetSequenceNumber(mojom::ClipboardBuffer clipboard_buffer,
29                          GetSequenceNumberCallback callback) override;
30   void IsFormatAvailable(mojom::ClipboardFormat format,
31                          mojom::ClipboardBuffer clipboard_buffer,
32                          IsFormatAvailableCallback callback) override;
33   void ReadAvailableTypes(mojom::ClipboardBuffer clipboard_buffer,
34                           ReadAvailableTypesCallback callback) override;
35   void ReadText(mojom::ClipboardBuffer clipboard_buffer,
36                 ReadTextCallback callback) override;
37   void ReadHtml(mojom::ClipboardBuffer clipboard_buffer,
38                 ReadHtmlCallback callback) override;
39   void ReadRtf(mojom::ClipboardBuffer clipboard_buffer,
40                ReadRtfCallback callback) override;
41   void ReadImage(mojom::ClipboardBuffer clipboard_buffer,
42                  ReadImageCallback callback) override;
43   void ReadCustomData(mojom::ClipboardBuffer clipboard_buffer,
44                       const String& type,
45                       ReadCustomDataCallback callback) override;
46   void WriteText(const String& text) override;
47   void WriteHtml(const String& markup, const KURL& url) override;
48   void WriteSmartPasteMarker() override;
49   void WriteCustomData(const HashMap<String, String>& data) override;
50   void WriteBookmark(const String& url, const String& title) override;
51   void WriteImage(const SkBitmap& bitmap) override;
52   void CommitWrite() override;
53 #if defined(OS_MACOSX)
54   void WriteStringToFindPboard(const String& text) override;
55 #endif
56 
57   mojo::ReceiverSet<mojom::blink::ClipboardHost> receivers_;
58   uint64_t sequence_number_ = 0;
59   String plain_text_ = g_empty_string;
60   String html_text_ = g_empty_string;
61   KURL url_;
62   SkBitmap image_;
63   HashMap<String, String> custom_data_;
64   bool write_smart_paste_ = false;
65   bool needs_reset_ = false;
66 
67   DISALLOW_COPY_AND_ASSIGN(MockClipboardHost);
68 };
69 
70 }  // namespace blink
71 
72 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_MOCK_CLIPBOARD_HOST_H_
73