Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: services/ui/clipboard/clipboard_unittest.cc

Issue 2504403004: Mojo C++ bindings: switch the generated code of clipboard.mojom to use STL types. (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "mojo/common/common_type_converters.h" 11 #include "mojo/common/common_type_converters.h"
12 #include "services/service_manager/public/cpp/service_context.h" 12 #include "services/service_manager/public/cpp/service_context.h"
13 #include "services/service_manager/public/cpp/service_test.h" 13 #include "services/service_manager/public/cpp/service_test.h"
14 #include "services/ui/public/interfaces/clipboard.mojom.h" 14 #include "services/ui/public/interfaces/clipboard.mojom.h"
15 #include "services/ui/public/interfaces/constants.mojom.h" 15 #include "services/ui/public/interfaces/constants.mojom.h"
16 16
17 using mojo::Array; 17 using mojo::Array;
18 using mojo::Map;
19 using mojo::String;
20 using ui::mojom::Clipboard; 18 using ui::mojom::Clipboard;
21 19
22 namespace ui { 20 namespace ui {
23 namespace clipboard { 21 namespace clipboard {
24 namespace { 22 namespace {
25 23
26 const char* kUninitialized = "Uninitialized data"; 24 const char* kUninitialized = "Uninitialized data";
27 const char* kPlainTextData = "Some plain data"; 25 const char* kPlainTextData = "Some plain data";
28 const char* kHtmlData = "<html>data</html>"; 26 const char* kHtmlData = "<html>data</html>";
29 27
(...skipping 14 matching lines...) Expand all
44 42
45 uint64_t GetSequenceNumber() { 43 uint64_t GetSequenceNumber() {
46 uint64_t sequence_num = 999999; 44 uint64_t sequence_num = 999999;
47 EXPECT_TRUE(clipboard_->GetSequenceNumber( 45 EXPECT_TRUE(clipboard_->GetSequenceNumber(
48 Clipboard::Type::COPY_PASTE, &sequence_num)); 46 Clipboard::Type::COPY_PASTE, &sequence_num));
49 return sequence_num; 47 return sequence_num;
50 } 48 }
51 49
52 std::vector<std::string> GetAvailableFormatMimeTypes() { 50 std::vector<std::string> GetAvailableFormatMimeTypes() {
53 uint64_t sequence_num = 999999; 51 uint64_t sequence_num = 999999;
54 Array<String> types; 52 std::vector<std::string> types;
55 types.push_back(kUninitialized); 53 types.push_back(kUninitialized);
56 clipboard_->GetAvailableMimeTypes( 54 clipboard_->GetAvailableMimeTypes(
57 Clipboard::Type::COPY_PASTE, 55 Clipboard::Type::COPY_PASTE,
58 &sequence_num, &types); 56 &sequence_num, &types);
59 return types.To<std::vector<std::string>>(); 57 return types;
60 } 58 }
61 59
62 bool GetDataOfType(const std::string& mime_type, std::string* data) { 60 bool GetDataOfType(const std::string& mime_type, std::string* data) {
63 bool valid = false; 61 bool valid = false;
64 Array<uint8_t> raw_data; 62 base::Optional<std::vector<uint8_t>> raw_data;
65 uint64_t sequence_number = 0; 63 uint64_t sequence_number = 0;
66 clipboard_->ReadClipboardData(Clipboard::Type::COPY_PASTE, mime_type, 64 clipboard_->ReadClipboardData(Clipboard::Type::COPY_PASTE, mime_type,
67 &sequence_number, &raw_data); 65 &sequence_number, &raw_data);
68 valid = !raw_data.is_null(); 66 valid = raw_data.has_value();
69 *data = raw_data.is_null() ? "" : raw_data.To<std::string>(); 67 *data = Array<uint8_t>(std::move(raw_data)).To<std::string>();
70 return valid; 68 return valid;
71 } 69 }
72 70
73 void SetStringText(const std::string& data) { 71 void SetStringText(const std::string& data) {
74 uint64_t sequence_number; 72 uint64_t sequence_number;
75 Map<String, Array<uint8_t>> mime_data; 73 std::unordered_map<std::string, std::vector<uint8_t>> mime_data;
76 mime_data[mojom::kMimeTypeText] = Array<uint8_t>::From(data); 74 mime_data[mojom::kMimeTypeText] = Array<uint8_t>::From(data);
77 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 75 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
78 std::move(mime_data), 76 std::move(mime_data),
79 &sequence_number); 77 &sequence_number);
80 } 78 }
81 79
82 protected: 80 protected:
83 mojom::ClipboardPtr clipboard_; 81 mojom::ClipboardPtr clipboard_;
84 82
85 DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest); 83 DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest);
(...skipping 12 matching lines...) Expand all
98 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); 96 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data));
99 97
100 SetStringText(kPlainTextData); 98 SetStringText(kPlainTextData);
101 EXPECT_EQ(1ul, GetSequenceNumber()); 99 EXPECT_EQ(1ul, GetSequenceNumber());
102 100
103 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); 101 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data));
104 EXPECT_EQ(kPlainTextData, data); 102 EXPECT_EQ(kPlainTextData, data);
105 } 103 }
106 104
107 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) { 105 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) {
108 Map<String, Array<uint8_t>> mime_data; 106 std::unordered_map<std::string, std::vector<uint8_t>> mime_data;
109 mime_data[mojom::kMimeTypeText] = 107 mime_data[mojom::kMimeTypeText] =
110 Array<uint8_t>::From(std::string(kPlainTextData)); 108 Array<uint8_t>::From(std::string(kPlainTextData));
111 mime_data[mojom::kMimeTypeHTML] = 109 mime_data[mojom::kMimeTypeHTML] =
112 Array<uint8_t>::From(std::string(kHtmlData)); 110 Array<uint8_t>::From(std::string(kHtmlData));
113 111
114 uint64_t sequence_num = 0; 112 uint64_t sequence_num = 0;
115 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 113 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
116 std::move(mime_data), 114 std::move(mime_data),
117 &sequence_num); 115 &sequence_num);
118 EXPECT_EQ(1ul, sequence_num); 116 EXPECT_EQ(1ul, sequence_num);
119 117
120 std::string data; 118 std::string data;
121 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); 119 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data));
122 EXPECT_EQ(kPlainTextData, data); 120 EXPECT_EQ(kPlainTextData, data);
123 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeHTML, &data)); 121 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeHTML, &data));
124 EXPECT_EQ(kHtmlData, data); 122 EXPECT_EQ(kHtmlData, data);
125 } 123 }
126 124
127 TEST_F(ClipboardAppTest, CanClearClipboardWithZeroArray) { 125 TEST_F(ClipboardAppTest, CanClearClipboardWithZeroArray) {
128 std::string data; 126 std::string data;
129 SetStringText(kPlainTextData); 127 SetStringText(kPlainTextData);
130 EXPECT_EQ(1ul, GetSequenceNumber()); 128 EXPECT_EQ(1ul, GetSequenceNumber());
131 129
132 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); 130 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data));
133 EXPECT_EQ(kPlainTextData, data); 131 EXPECT_EQ(kPlainTextData, data);
134 132
135 Map<String, Array<uint8_t>> mime_data; 133 std::unordered_map<std::string, std::vector<uint8_t>> mime_data;
136 uint64_t sequence_num = 0; 134 uint64_t sequence_num = 0;
137 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 135 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
138 std::move(mime_data), 136 std::move(mime_data),
139 &sequence_num); 137 &sequence_num);
140 138
141 EXPECT_EQ(2ul, sequence_num); 139 EXPECT_EQ(2ul, sequence_num);
142 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); 140 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data));
143 } 141 }
144 142
145 } // namespace clipboard 143 } // namespace clipboard
146 } // namespace ui 144 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698