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

Side by Side Diff: chrome/browser/ui/cocoa/tab_contents/web_drop_target_unittest.mm

Issue 8418033: Push one function from the Mac drag/drop util code to ui/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 | Annotate | Revision Log
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/mac/scoped_nsautorelease_pool.h" 5 #include "base/mac/scoped_nsautorelease_pool.h"
6 #import "base/memory/scoped_nsobject.h" 6 #import "base/memory/scoped_nsobject.h"
7 #include "base/sys_string_conversions.h" 7 #include "base/sys_string_conversions.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 9 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
10 #import "chrome/browser/ui/cocoa/drag_util.h"
11 #import "chrome/browser/ui/cocoa/tab_contents/web_drop_target.h" 10 #import "chrome/browser/ui/cocoa/tab_contents/web_drop_target.h"
12 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 11 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
13 #include "content/browser/tab_contents/test_tab_contents.h" 12 #include "content/browser/tab_contents/test_tab_contents.h"
14 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
15 #import "third_party/mozilla/NSPasteboard+Utils.h" 14 #import "third_party/mozilla/NSPasteboard+Utils.h"
15 #import "ui/base/dragdrop/cocoa_dnd_util.h"
16 #include "webkit/glue/webdropdata.h" 16 #include "webkit/glue/webdropdata.h"
17 17
18 class WebDropTargetTest : public ChromeRenderViewHostTestHarness { 18 class WebDropTargetTest : public ChromeRenderViewHostTestHarness {
19 public: 19 public:
20 virtual void SetUp() { 20 virtual void SetUp() {
21 ChromeRenderViewHostTestHarness::SetUp(); 21 ChromeRenderViewHostTestHarness::SetUp();
22 CocoaTest::BootstrapCocoa(); 22 CocoaTest::BootstrapCocoa();
23 drop_target_.reset([[WebDropTarget alloc] initWithTabContents:contents()]); 23 drop_target_.reset([[WebDropTarget alloc] initWithTabContents:contents()]);
24 } 24 }
25 25
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 NSPasteboard* pboard = nil; 75 NSPasteboard* pboard = nil;
76 NSString* url = nil; 76 NSString* url = nil;
77 NSString* title = nil; 77 NSString* title = nil;
78 GURL result_url; 78 GURL result_url;
79 string16 result_title; 79 string16 result_title;
80 80
81 // Put a URL on the pasteboard and check it. 81 // Put a URL on the pasteboard and check it.
82 pboard = [NSPasteboard pasteboardWithUniqueName]; 82 pboard = [NSPasteboard pasteboardWithUniqueName];
83 url = @"http://www.google.com/"; 83 url = @"http://www.google.com/";
84 PutURLOnPasteboard(url, pboard); 84 PutURLOnPasteboard(url, pboard);
85 EXPECT_TRUE(drag_util::PopulateURLAndTitleFromPasteBoard( 85 EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
86 &result_url, &result_title, pboard, NO)); 86 &result_url, &result_title, pboard, NO));
87 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec()); 87 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
88 [pboard releaseGlobally]; 88 [pboard releaseGlobally];
89 89
90 // Put a 'url ' and 'urln' on the pasteboard and check it. 90 // Put a 'url ' and 'urln' on the pasteboard and check it.
91 pboard = [NSPasteboard pasteboardWithUniqueName]; 91 pboard = [NSPasteboard pasteboardWithUniqueName];
92 url = @"http://www.google.com/"; 92 url = @"http://www.google.com/";
93 title = @"Title of Awesomeness!", 93 title = @"Title of Awesomeness!",
94 PutCoreURLAndTitleOnPasteboard(url, title, pboard); 94 PutCoreURLAndTitleOnPasteboard(url, title, pboard);
95 EXPECT_TRUE(drag_util::PopulateURLAndTitleFromPasteBoard( 95 EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
96 &result_url, &result_title, pboard, NO)); 96 &result_url, &result_title, pboard, NO));
97 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec()); 97 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
98 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title); 98 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
99 [pboard releaseGlobally]; 99 [pboard releaseGlobally];
100 100
101 // Also check that it passes file:// via 'url '/'urln' properly. 101 // Also check that it passes file:// via 'url '/'urln' properly.
102 pboard = [NSPasteboard pasteboardWithUniqueName]; 102 pboard = [NSPasteboard pasteboardWithUniqueName];
103 url = @"file:///tmp/dont_delete_me.txt"; 103 url = @"file:///tmp/dont_delete_me.txt";
104 title = @"very important"; 104 title = @"very important";
105 PutCoreURLAndTitleOnPasteboard(url, title, pboard); 105 PutCoreURLAndTitleOnPasteboard(url, title, pboard);
106 EXPECT_TRUE(drag_util::PopulateURLAndTitleFromPasteBoard( 106 EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
107 &result_url, &result_title, pboard, NO)); 107 &result_url, &result_title, pboard, NO));
108 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec()); 108 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
109 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title); 109 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
110 [pboard releaseGlobally]; 110 [pboard releaseGlobally];
111 111
112 // And javascript:. 112 // And javascript:.
113 pboard = [NSPasteboard pasteboardWithUniqueName]; 113 pboard = [NSPasteboard pasteboardWithUniqueName];
114 url = @"javascript:open('http://www.youtube.com/')"; 114 url = @"javascript:open('http://www.youtube.com/')";
115 title = @"kill some time"; 115 title = @"kill some time";
116 PutCoreURLAndTitleOnPasteboard(url, title, pboard); 116 PutCoreURLAndTitleOnPasteboard(url, title, pboard);
117 EXPECT_TRUE(drag_util::PopulateURLAndTitleFromPasteBoard( 117 EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
118 &result_url, &result_title, pboard, NO)); 118 &result_url, &result_title, pboard, NO));
119 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec()); 119 EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
120 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title); 120 EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
121 [pboard releaseGlobally]; 121 [pboard releaseGlobally];
122 122
123 pboard = [NSPasteboard pasteboardWithUniqueName]; 123 pboard = [NSPasteboard pasteboardWithUniqueName];
124 url = @"/bin/sh"; 124 url = @"/bin/sh";
125 [pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType] 125 [pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType]
126 owner:nil]; 126 owner:nil];
127 [pboard setPropertyList:[NSArray arrayWithObject:url] 127 [pboard setPropertyList:[NSArray arrayWithObject:url]
128 forType:NSFilenamesPboardType]; 128 forType:NSFilenamesPboardType];
129 EXPECT_FALSE(drag_util::PopulateURLAndTitleFromPasteBoard( 129 EXPECT_FALSE(ui::PopulateURLAndTitleFromPasteboard(
130 &result_url, &result_title, pboard, NO)); 130 &result_url, &result_title, pboard, NO));
131 EXPECT_TRUE(drag_util::PopulateURLAndTitleFromPasteBoard( 131 EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
132 &result_url, &result_title, pboard, YES)); 132 &result_url, &result_title, pboard, YES));
133 EXPECT_EQ("file://localhost/bin/sh", result_url.spec()); 133 EXPECT_EQ("file://localhost/bin/sh", result_url.spec());
134 EXPECT_EQ("sh", UTF16ToUTF8(result_title)); 134 EXPECT_EQ("sh", UTF16ToUTF8(result_title));
135 [pboard releaseGlobally]; 135 [pboard releaseGlobally];
136 } 136 }
137 137
138 TEST_F(WebDropTargetTest, Data) { 138 TEST_F(WebDropTargetTest, Data) {
139 WebDropData data; 139 WebDropData data;
140 NSPasteboard* pboard = [NSPasteboard pasteboardWithUniqueName]; 140 NSPasteboard* pboard = [NSPasteboard pasteboardWithUniqueName];
141 141
142 PutURLOnPasteboard(@"http://www.google.com", pboard); 142 PutURLOnPasteboard(@"http://www.google.com", pboard);
143 [pboard addTypes:[NSArray arrayWithObjects:NSHTMLPboardType, 143 [pboard addTypes:[NSArray arrayWithObjects:NSHTMLPboardType,
144 NSStringPboardType, nil] 144 NSStringPboardType, nil]
145 owner:nil]; 145 owner:nil];
146 NSString* htmlString = @"<html><body><b>hi there</b></body></html>"; 146 NSString* htmlString = @"<html><body><b>hi there</b></body></html>";
147 NSString* textString = @"hi there"; 147 NSString* textString = @"hi there";
148 [pboard setString:htmlString forType:NSHTMLPboardType]; 148 [pboard setString:htmlString forType:NSHTMLPboardType];
149 [pboard setString:textString forType:NSStringPboardType]; 149 [pboard setString:textString forType:NSStringPboardType];
150 [drop_target_ populateWebDropData:&data fromPasteboard:pboard]; 150 [drop_target_ populateWebDropData:&data fromPasteboard:pboard];
151 EXPECT_EQ(data.url.spec(), "http://www.google.com/"); 151 EXPECT_EQ(data.url.spec(), "http://www.google.com/");
152 EXPECT_EQ(base::SysNSStringToUTF16(textString), data.plain_text); 152 EXPECT_EQ(base::SysNSStringToUTF16(textString), data.plain_text);
153 EXPECT_EQ(base::SysNSStringToUTF16(htmlString), data.text_html); 153 EXPECT_EQ(base::SysNSStringToUTF16(htmlString), data.text_html);
154 154
155 [pboard releaseGlobally]; 155 [pboard releaseGlobally];
156 } 156 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/tab_contents/web_drop_target.mm ('k') | chrome/browser/ui/cocoa/url_drop_target.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698