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

Side by Side Diff: ui/base/dragdrop/os_exchange_data_win_unittest.cc

Issue 6825055: Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert bad indentation, rebase Created 9 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « ui/base/dragdrop/os_exchange_data_provider_win.h ('k') | ui/gfx/canvas_direct2d.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_handle.h" 6 #include "base/memory/scoped_handle.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "ui/base/dragdrop/os_exchange_data.h" 8 #include "ui/base/dragdrop/os_exchange_data.h"
9 #include "ui/base/dragdrop/os_exchange_data_provider_win.h" 9 #include "ui/base/dragdrop/os_exchange_data_provider_win.h"
10 #include "base/pickle.h" 10 #include "base/pickle.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 EXPECT_FALSE(data2.GetURLAndTitle(&url, &title)); 43 EXPECT_FALSE(data2.GetURLAndTitle(&url, &title));
44 // No URLs in |data|, so url should be untouched. 44 // No URLs in |data|, so url should be untouched.
45 EXPECT_EQ(url_spec, url.spec()); 45 EXPECT_EQ(url_spec, url.spec());
46 } 46 }
47 47
48 // Test getting using the IDataObject COM API 48 // Test getting using the IDataObject COM API
49 TEST(OSExchangeDataTest, StringDataAccessViaCOM) { 49 TEST(OSExchangeDataTest, StringDataAccessViaCOM) {
50 OSExchangeData data; 50 OSExchangeData data;
51 std::wstring input = L"O hai googlz."; 51 std::wstring input = L"O hai googlz.";
52 data.SetString(input); 52 data.SetString(input);
53 ScopedComPtr<IDataObject> com_data( 53 base::win::ScopedComPtr<IDataObject> com_data(
54 OSExchangeDataProviderWin::GetIDataObject(data)); 54 OSExchangeDataProviderWin::GetIDataObject(data));
55 55
56 FORMATETC format_etc = 56 FORMATETC format_etc =
57 { CF_UNICODETEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; 57 { CF_UNICODETEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
58 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc)); 58 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc));
59 59
60 STGMEDIUM medium; 60 STGMEDIUM medium;
61 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium)); 61 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium));
62 std::wstring output = 62 std::wstring output =
63 base::win::ScopedHGlobal<wchar_t>(medium.hGlobal).get(); 63 base::win::ScopedHGlobal<wchar_t>(medium.hGlobal).get();
64 EXPECT_EQ(input, output); 64 EXPECT_EQ(input, output);
65 ReleaseStgMedium(&medium); 65 ReleaseStgMedium(&medium);
66 } 66 }
67 67
68 // Test setting using the IDataObject COM API 68 // Test setting using the IDataObject COM API
69 TEST(OSExchangeDataTest, StringDataWritingViaCOM) { 69 TEST(OSExchangeDataTest, StringDataWritingViaCOM) {
70 OSExchangeData data; 70 OSExchangeData data;
71 std::wstring input = L"http://www.google.com/"; 71 std::wstring input = L"http://www.google.com/";
72 72
73 ScopedComPtr<IDataObject> com_data( 73 base::win::ScopedComPtr<IDataObject> com_data(
74 OSExchangeDataProviderWin::GetIDataObject(data)); 74 OSExchangeDataProviderWin::GetIDataObject(data));
75 75
76 // Store data in the object using the COM SetData API. 76 // Store data in the object using the COM SetData API.
77 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL); 77 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL);
78 FORMATETC format_etc = 78 FORMATETC format_etc =
79 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; 79 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
80 STGMEDIUM medium; 80 STGMEDIUM medium;
81 medium.tymed = TYMED_HGLOBAL; 81 medium.tymed = TYMED_HGLOBAL;
82 HGLOBAL glob = GlobalAlloc(GPTR, sizeof(wchar_t) * (input.size() + 1)); 82 HGLOBAL glob = GlobalAlloc(GPTR, sizeof(wchar_t) * (input.size() + 1));
83 size_t stringsz = input.size(); 83 size_t stringsz = input.size();
(...skipping 13 matching lines...) Expand all
97 std::wstring title; 97 std::wstring title;
98 EXPECT_TRUE(data2.GetURLAndTitle(&url_from_data, &title)); 98 EXPECT_TRUE(data2.GetURLAndTitle(&url_from_data, &title));
99 GURL reference_url(input); 99 GURL reference_url(input);
100 EXPECT_EQ(reference_url.spec(), url_from_data.spec()); 100 EXPECT_EQ(reference_url.spec(), url_from_data.spec());
101 } 101 }
102 102
103 TEST(OSExchangeDataTest, URLDataAccessViaCOM) { 103 TEST(OSExchangeDataTest, URLDataAccessViaCOM) {
104 OSExchangeData data; 104 OSExchangeData data;
105 GURL url("http://www.google.com/"); 105 GURL url("http://www.google.com/");
106 data.SetURL(url, L""); 106 data.SetURL(url, L"");
107 ScopedComPtr<IDataObject> com_data( 107 base::win::ScopedComPtr<IDataObject> com_data(
108 OSExchangeDataProviderWin::GetIDataObject(data)); 108 OSExchangeDataProviderWin::GetIDataObject(data));
109 109
110 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL); 110 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL);
111 FORMATETC format_etc = 111 FORMATETC format_etc =
112 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; 112 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
113 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc)); 113 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc));
114 114
115 STGMEDIUM medium; 115 STGMEDIUM medium;
116 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium)); 116 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium));
117 std::wstring output = 117 std::wstring output =
118 base::win::ScopedHGlobal<wchar_t>(medium.hGlobal).get(); 118 base::win::ScopedHGlobal<wchar_t>(medium.hGlobal).get();
119 EXPECT_EQ(url.spec(), WideToUTF8(output)); 119 EXPECT_EQ(url.spec(), WideToUTF8(output));
120 ReleaseStgMedium(&medium); 120 ReleaseStgMedium(&medium);
121 } 121 }
122 122
123 TEST(OSExchangeDataTest, MultipleFormatsViaCOM) { 123 TEST(OSExchangeDataTest, MultipleFormatsViaCOM) {
124 OSExchangeData data; 124 OSExchangeData data;
125 std::string url_spec = "http://www.google.com/"; 125 std::string url_spec = "http://www.google.com/";
126 GURL url(url_spec); 126 GURL url(url_spec);
127 std::wstring text = L"O hai googlz."; 127 std::wstring text = L"O hai googlz.";
128 data.SetURL(url, L"Google"); 128 data.SetURL(url, L"Google");
129 data.SetString(text); 129 data.SetString(text);
130 130
131 ScopedComPtr<IDataObject> com_data( 131 base::win::ScopedComPtr<IDataObject> com_data(
132 OSExchangeDataProviderWin::GetIDataObject(data)); 132 OSExchangeDataProviderWin::GetIDataObject(data));
133 133
134 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL); 134 CLIPFORMAT cfstr_ineturl = RegisterClipboardFormat(CFSTR_INETURL);
135 FORMATETC url_format_etc = 135 FORMATETC url_format_etc =
136 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; 136 { cfstr_ineturl, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
137 EXPECT_EQ(S_OK, com_data->QueryGetData(&url_format_etc)); 137 EXPECT_EQ(S_OK, com_data->QueryGetData(&url_format_etc));
138 FORMATETC text_format_etc = 138 FORMATETC text_format_etc =
139 { CF_UNICODETEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; 139 { CF_UNICODETEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
140 EXPECT_EQ(S_OK, com_data->QueryGetData(&text_format_etc)); 140 EXPECT_EQ(S_OK, com_data->QueryGetData(&text_format_etc));
141 141
(...skipping 15 matching lines...) Expand all
157 157
158 TEST(OSExchangeDataTest, EnumerationViaCOM) { 158 TEST(OSExchangeDataTest, EnumerationViaCOM) {
159 OSExchangeData data; 159 OSExchangeData data;
160 data.SetURL(GURL("http://www.google.com/"), L""); 160 data.SetURL(GURL("http://www.google.com/"), L"");
161 data.SetString(L"O hai googlz."); 161 data.SetString(L"O hai googlz.");
162 162
163 CLIPFORMAT cfstr_file_group_descriptor = 163 CLIPFORMAT cfstr_file_group_descriptor =
164 RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR); 164 RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR);
165 CLIPFORMAT text_x_moz_url = RegisterClipboardFormat(L"text/x-moz-url"); 165 CLIPFORMAT text_x_moz_url = RegisterClipboardFormat(L"text/x-moz-url");
166 166
167 ScopedComPtr<IDataObject> com_data( 167 base::win::ScopedComPtr<IDataObject> com_data(
168 OSExchangeDataProviderWin::GetIDataObject(data)); 168 OSExchangeDataProviderWin::GetIDataObject(data));
169 ScopedComPtr<IEnumFORMATETC> enumerator; 169 base::win::ScopedComPtr<IEnumFORMATETC> enumerator;
170 EXPECT_EQ(S_OK, com_data.get()->EnumFormatEtc(DATADIR_GET, 170 EXPECT_EQ(S_OK, com_data.get()->EnumFormatEtc(DATADIR_GET,
171 enumerator.Receive())); 171 enumerator.Receive()));
172 172
173 // Test that we can get one item. 173 // Test that we can get one item.
174 { 174 {
175 // Explictly don't reset the first time, to verify the creation state is 175 // Explictly don't reset the first time, to verify the creation state is
176 // OK. 176 // OK.
177 ULONG retrieved = 0; 177 ULONG retrieved = 0;
178 FORMATETC elements_array[1]; 178 FORMATETC elements_array[1];
179 EXPECT_EQ(S_OK, enumerator->Next(1, 179 EXPECT_EQ(S_OK, enumerator->Next(1,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); 213 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved));
214 EXPECT_EQ(1, retrieved); 214 EXPECT_EQ(1, retrieved);
215 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); 215 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat);
216 } 216 }
217 217
218 // Test that we can skip the first item, and create a clone that matches in 218 // Test that we can skip the first item, and create a clone that matches in
219 // this state, and modify the original without affecting the clone. 219 // this state, and modify the original without affecting the clone.
220 { 220 {
221 EXPECT_EQ(S_OK, enumerator->Reset()); 221 EXPECT_EQ(S_OK, enumerator->Reset());
222 EXPECT_EQ(S_OK, enumerator->Skip(1)); 222 EXPECT_EQ(S_OK, enumerator->Skip(1));
223 ScopedComPtr<IEnumFORMATETC> cloned_enumerator; 223 base::win::ScopedComPtr<IEnumFORMATETC> cloned_enumerator;
224 EXPECT_EQ(S_OK, enumerator.get()->Clone(cloned_enumerator.Receive())); 224 EXPECT_EQ(S_OK, enumerator.get()->Clone(cloned_enumerator.Receive()));
225 EXPECT_EQ(S_OK, enumerator.get()->Reset()); 225 EXPECT_EQ(S_OK, enumerator.get()->Reset());
226 226
227 { 227 {
228 ULONG retrieved = 0; 228 ULONG retrieved = 0;
229 FORMATETC elements_array[1]; 229 FORMATETC elements_array[1];
230 EXPECT_EQ(S_OK, cloned_enumerator->Next(1, 230 EXPECT_EQ(S_OK, cloned_enumerator->Next(1,
231 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved)); 231 reinterpret_cast<FORMATETC*>(&elements_array), &retrieved));
232 EXPECT_EQ(1, retrieved); 232 EXPECT_EQ(1, retrieved);
233 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat); 233 EXPECT_EQ(cfstr_file_group_descriptor, elements_array[0].cfFormat);
(...skipping 26 matching lines...) Expand all
260 EXPECT_TRUE(data2.GetURLAndTitle(&output_url, &output_title)); 260 EXPECT_TRUE(data2.GetURLAndTitle(&output_url, &output_title));
261 EXPECT_EQ(url_spec, output_url.spec()); 261 EXPECT_EQ(url_spec, output_url.spec());
262 EXPECT_EQ(url_title, output_title); 262 EXPECT_EQ(url_title, output_title);
263 std::wstring output_string; 263 std::wstring output_string;
264 264
265 // URL should be the raw text response 265 // URL should be the raw text response
266 EXPECT_TRUE(data2.GetString(&output_string)); 266 EXPECT_TRUE(data2.GetString(&output_string));
267 EXPECT_EQ(url_spec, WideToUTF8(output_string)); 267 EXPECT_EQ(url_spec, WideToUTF8(output_string));
268 268
269 // File contents access via COM 269 // File contents access via COM
270 ScopedComPtr<IDataObject> com_data( 270 base::win::ScopedComPtr<IDataObject> com_data(
271 OSExchangeDataProviderWin::GetIDataObject(data)); 271 OSExchangeDataProviderWin::GetIDataObject(data));
272 { 272 {
273 CLIPFORMAT cfstr_file_contents = 273 CLIPFORMAT cfstr_file_contents =
274 RegisterClipboardFormat(CFSTR_FILECONTENTS); 274 RegisterClipboardFormat(CFSTR_FILECONTENTS);
275 FORMATETC format_etc = 275 FORMATETC format_etc =
276 { cfstr_file_contents, NULL, DVASPECT_CONTENT, 0, TYMED_HGLOBAL }; 276 { cfstr_file_contents, NULL, DVASPECT_CONTENT, 0, TYMED_HGLOBAL };
277 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc)); 277 EXPECT_EQ(S_OK, com_data->QueryGetData(&format_etc));
278 278
279 STGMEDIUM medium; 279 STGMEDIUM medium;
280 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium)); 280 EXPECT_EQ(S_OK, com_data->GetData(&format_etc, &medium));
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 368
369 OSExchangeData data2(CloneProvider(data)); 369 OSExchangeData data2(CloneProvider(data));
370 ASSERT_TRUE(data2.HasURL()); 370 ASSERT_TRUE(data2.HasURL());
371 GURL read_url; 371 GURL read_url;
372 std::wstring title; 372 std::wstring title;
373 EXPECT_TRUE(data2.GetURLAndTitle(&read_url, &title)); 373 EXPECT_TRUE(data2.GetURLAndTitle(&read_url, &title));
374 EXPECT_EQ(GURL("http://google.com"), read_url); 374 EXPECT_EQ(GURL("http://google.com"), read_url);
375 } 375 }
376 376
377 } // namespace ui 377 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/dragdrop/os_exchange_data_provider_win.h ('k') | ui/gfx/canvas_direct2d.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698