OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/memory/ref_counted.h" | 5 #include "base/memory/ref_counted.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "base/win/scoped_hglobal.h" | 8 #include "base/win/scoped_hglobal.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "ui/base/clipboard/clipboard.h" | 10 #include "ui/base/clipboard/clipboard.h" |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 enumerator.Receive())); | 186 enumerator.Receive())); |
187 | 187 |
188 // Test that we can get one item. | 188 // Test that we can get one item. |
189 { | 189 { |
190 // Explictly don't reset the first time, to verify the creation state is | 190 // Explictly don't reset the first time, to verify the creation state is |
191 // OK. | 191 // OK. |
192 ULONG retrieved = 0; | 192 ULONG retrieved = 0; |
193 FORMATETC elements_array[1]; | 193 FORMATETC elements_array[1]; |
194 EXPECT_EQ(S_OK, enumerator->Next(1, | 194 EXPECT_EQ(S_OK, enumerator->Next(1, |
195 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); | 195 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); |
196 EXPECT_EQ(1, retrieved); | 196 EXPECT_EQ(1u, retrieved); |
197 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); | 197 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); |
198 } | 198 } |
199 | 199 |
200 // Test that we can get one item with a NULL retrieved value. | 200 // Test that we can get one item with a NULL retrieved value. |
201 { | 201 { |
202 EXPECT_EQ(S_OK, enumerator->Reset()); | 202 EXPECT_EQ(S_OK, enumerator->Reset()); |
203 FORMATETC elements_array[1]; | 203 FORMATETC elements_array[1]; |
204 EXPECT_EQ(S_OK, enumerator->Next(1, | 204 EXPECT_EQ(S_OK, enumerator->Next(1, |
205 reinterpret_cast<FORMATETC*>(&elements_array), NULL)); | 205 reinterpret_cast<FORMATETC*>(&elements_array), NULL)); |
206 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); | 206 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); |
207 } | 207 } |
208 | 208 |
209 // Test that we can get two items. | 209 // Test that we can get two items. |
210 { | 210 { |
211 EXPECT_EQ(S_OK, enumerator->Reset()); | 211 EXPECT_EQ(S_OK, enumerator->Reset()); |
212 ULONG retrieved = 0; | 212 ULONG retrieved = 0; |
213 FORMATETC elements_array[2]; | 213 FORMATETC elements_array[2]; |
214 EXPECT_EQ(S_OK, enumerator->Next(2, | 214 EXPECT_EQ(S_OK, enumerator->Next(2, |
215 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); | 215 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); |
216 EXPECT_EQ(2, retrieved); | 216 EXPECT_EQ(2u, retrieved); |
217 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); | 217 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); |
218 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[1].cfFormat); | 218 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[1].cfFormat); |
219 } | 219 } |
220 | 220 |
221 // Test that we can skip the first item. | 221 // Test that we can skip the first item. |
222 { | 222 { |
223 EXPECT_EQ(S_OK, enumerator->Reset()); | 223 EXPECT_EQ(S_OK, enumerator->Reset()); |
224 EXPECT_EQ(S_OK, enumerator->Skip(1)); | 224 EXPECT_EQ(S_OK, enumerator->Skip(1)); |
225 ULONG retrieved = 0; | 225 ULONG retrieved = 0; |
226 FORMATETC elements_array[1]; | 226 FORMATETC elements_array[1]; |
227 EXPECT_EQ(S_OK, enumerator->Next(1, | 227 EXPECT_EQ(S_OK, enumerator->Next(1, |
228 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); | 228 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); |
229 EXPECT_EQ(1, retrieved); | 229 EXPECT_EQ(1u, retrieved); |
230 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); | 230 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); |
231 } | 231 } |
232 | 232 |
233 // Test that we can skip the first item, and create a clone that matches in | 233 // Test that we can skip the first item, and create a clone that matches in |
234 // this state, and modify the original without affecting the clone. | 234 // this state, and modify the original without affecting the clone. |
235 { | 235 { |
236 EXPECT_EQ(S_OK, enumerator->Reset()); | 236 EXPECT_EQ(S_OK, enumerator->Reset()); |
237 EXPECT_EQ(S_OK, enumerator->Skip(1)); | 237 EXPECT_EQ(S_OK, enumerator->Skip(1)); |
238 base::win::ScopedComPtr<IEnumFORMATETC> cloned_enumerator; | 238 base::win::ScopedComPtr<IEnumFORMATETC> cloned_enumerator; |
239 EXPECT_EQ(S_OK, enumerator.get()->Clone(cloned_enumerator.Receive())); | 239 EXPECT_EQ(S_OK, enumerator.get()->Clone(cloned_enumerator.Receive())); |
240 EXPECT_EQ(S_OK, enumerator.get()->Reset()); | 240 EXPECT_EQ(S_OK, enumerator.get()->Reset()); |
241 | 241 |
242 { | 242 { |
243 ULONG retrieved = 0; | 243 ULONG retrieved = 0; |
244 FORMATETC elements_array[1]; | 244 FORMATETC elements_array[1]; |
245 EXPECT_EQ(S_OK, cloned_enumerator->Next(1, | 245 EXPECT_EQ(S_OK, cloned_enumerator->Next(1, |
246 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); | 246 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); |
247 EXPECT_EQ(1, retrieved); | 247 EXPECT_EQ(1u, retrieved); |
248 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); | 248 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); |
249 } | 249 } |
250 | 250 |
251 { | 251 { |
252 ULONG retrieved = 0; | 252 ULONG retrieved = 0; |
253 FORMATETC elements_array[1]; | 253 FORMATETC elements_array[1]; |
254 EXPECT_EQ(S_OK, enumerator->Next(1, | 254 EXPECT_EQ(S_OK, enumerator->Next(1, |
255 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); | 255 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); |
256 EXPECT_EQ(1, retrieved); | 256 EXPECT_EQ(1u, retrieved); |
257 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); | 257 EXPECT_EQ(text_x_moz_url, elements_array[0].cfFormat); |
258 } | 258 } |
259 } | 259 } |
260 } | 260 } |
261 | 261 |
262 TEST(OSExchangeDataWinTest, TestURLExchangeFormatsViaCOM) { | 262 TEST(OSExchangeDataWinTest, TestURLExchangeFormatsViaCOM) { |
263 OSExchangeData data; | 263 OSExchangeData data; |
264 std::string url_spec = "http://www.google.com/"; | 264 std::string url_spec = "http://www.google.com/"; |
265 GURL url(url_spec); | 265 GURL url(url_spec); |
266 std::wstring url_title = L"www.google.com"; | 266 std::wstring url_title = L"www.google.com"; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 OSExchangeData data2(data.provider().Clone()); | 342 OSExchangeData data2(data.provider().Clone()); |
343 ASSERT_TRUE(data2.HasURL(OSExchangeData::CONVERT_FILENAMES)); | 343 ASSERT_TRUE(data2.HasURL(OSExchangeData::CONVERT_FILENAMES)); |
344 GURL read_url; | 344 GURL read_url; |
345 std::wstring title; | 345 std::wstring title; |
346 EXPECT_TRUE(data2.GetURLAndTitle( | 346 EXPECT_TRUE(data2.GetURLAndTitle( |
347 OSExchangeData::CONVERT_FILENAMES, &read_url, &title)); | 347 OSExchangeData::CONVERT_FILENAMES, &read_url, &title)); |
348 EXPECT_EQ(GURL("http://google.com"), read_url); | 348 EXPECT_EQ(GURL("http://google.com"), read_url); |
349 } | 349 } |
350 | 350 |
351 } // namespace ui | 351 } // namespace ui |
OLD | NEW |