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

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

Issue 2607063002: Remove mojo::Array. (Closed)
Patch Set: rebase Created 3 years, 11 months 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"
12 #include "services/service_manager/public/cpp/service_context.h" 11 #include "services/service_manager/public/cpp/service_context.h"
13 #include "services/service_manager/public/cpp/service_test.h" 12 #include "services/service_manager/public/cpp/service_test.h"
14 #include "services/ui/public/interfaces/clipboard.mojom.h" 13 #include "services/ui/public/interfaces/clipboard.mojom.h"
15 #include "services/ui/public/interfaces/constants.mojom.h" 14 #include "services/ui/public/interfaces/constants.mojom.h"
16 15
17 using mojo::Array;
18 using ui::mojom::Clipboard; 16 using ui::mojom::Clipboard;
19 17
20 namespace ui { 18 namespace ui {
21 namespace clipboard { 19 namespace clipboard {
22 namespace { 20 namespace {
23 21
24 const char* kUninitialized = "Uninitialized data"; 22 const char* kUninitialized = "Uninitialized data";
25 const char* kPlainTextData = "Some plain data"; 23 const char* kPlainTextData = "Some plain data";
26 const char* kHtmlData = "<html>data</html>"; 24 const char* kHtmlData = "<html>data</html>";
27 25
(...skipping 29 matching lines...) Expand all
57 return types; 55 return types;
58 } 56 }
59 57
60 bool GetDataOfType(const std::string& mime_type, std::string* data) { 58 bool GetDataOfType(const std::string& mime_type, std::string* data) {
61 bool valid = false; 59 bool valid = false;
62 base::Optional<std::vector<uint8_t>> raw_data; 60 base::Optional<std::vector<uint8_t>> raw_data;
63 uint64_t sequence_number = 0; 61 uint64_t sequence_number = 0;
64 clipboard_->ReadClipboardData(Clipboard::Type::COPY_PASTE, mime_type, 62 clipboard_->ReadClipboardData(Clipboard::Type::COPY_PASTE, mime_type,
65 &sequence_number, &raw_data); 63 &sequence_number, &raw_data);
66 valid = raw_data.has_value(); 64 valid = raw_data.has_value();
67 *data = Array<uint8_t>(std::move(raw_data)).To<std::string>(); 65 if (valid)
66 data->assign(raw_data->begin(), raw_data->end());
67 else
68 data->clear();
68 return valid; 69 return valid;
69 } 70 }
70 71
71 void SetStringText(const std::string& data) { 72 void SetStringText(const std::string& data) {
72 uint64_t sequence_number; 73 uint64_t sequence_number;
73 std::unordered_map<std::string, std::vector<uint8_t>> mime_data; 74 std::unordered_map<std::string, std::vector<uint8_t>> mime_data;
74 mime_data[mojom::kMimeTypeText] = Array<uint8_t>::From(data); 75 mime_data[mojom::kMimeTypeText] =
76 std::vector<uint8_t>(data.begin(), data.end());
75 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 77 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
76 std::move(mime_data), 78 std::move(mime_data),
77 &sequence_number); 79 &sequence_number);
78 } 80 }
79 81
80 protected: 82 protected:
81 mojom::ClipboardPtr clipboard_; 83 mojom::ClipboardPtr clipboard_;
82 84
83 DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest); 85 DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest);
84 }; 86 };
(...skipping 12 matching lines...) Expand all
97 99
98 SetStringText(kPlainTextData); 100 SetStringText(kPlainTextData);
99 EXPECT_EQ(1ul, GetSequenceNumber()); 101 EXPECT_EQ(1ul, GetSequenceNumber());
100 102
101 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); 103 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data));
102 EXPECT_EQ(kPlainTextData, data); 104 EXPECT_EQ(kPlainTextData, data);
103 } 105 }
104 106
105 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) { 107 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) {
106 std::unordered_map<std::string, std::vector<uint8_t>> mime_data; 108 std::unordered_map<std::string, std::vector<uint8_t>> mime_data;
107 mime_data[mojom::kMimeTypeText] = 109 mime_data[mojom::kMimeTypeText] = std::vector<uint8_t>(
108 Array<uint8_t>::From(std::string(kPlainTextData)); 110 kPlainTextData, kPlainTextData + strlen(kPlainTextData));
109 mime_data[mojom::kMimeTypeHTML] = 111 mime_data[mojom::kMimeTypeHTML] =
110 Array<uint8_t>::From(std::string(kHtmlData)); 112 std::vector<uint8_t>(kHtmlData, kHtmlData + strlen(kHtmlData));
111 113
112 uint64_t sequence_num = 0; 114 uint64_t sequence_num = 0;
113 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 115 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
114 std::move(mime_data), 116 std::move(mime_data),
115 &sequence_num); 117 &sequence_num);
116 EXPECT_EQ(1ul, sequence_num); 118 EXPECT_EQ(1ul, sequence_num);
117 119
118 std::string data; 120 std::string data;
119 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); 121 EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data));
120 EXPECT_EQ(kPlainTextData, data); 122 EXPECT_EQ(kPlainTextData, data);
(...skipping 14 matching lines...) Expand all
135 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, 137 clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE,
136 std::move(mime_data), 138 std::move(mime_data),
137 &sequence_num); 139 &sequence_num);
138 140
139 EXPECT_EQ(2ul, sequence_num); 141 EXPECT_EQ(2ul, sequence_num);
140 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); 142 EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data));
141 } 143 }
142 144
143 } // namespace clipboard 145 } // namespace clipboard
144 } // namespace ui 146 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698