| Index: content/browser/web_contents/web_drag_dest_mac_unittest.mm
|
| diff --git a/content/browser/web_contents/web_drag_dest_mac_unittest.mm b/content/browser/web_contents/web_drag_dest_mac_unittest.mm
|
| index efa6452e267c80662ad52394e77798995ac20a68..b6a6946ab7de38bae0a470f20f7c1867deac7772 100644
|
| --- a/content/browser/web_contents/web_drag_dest_mac_unittest.mm
|
| +++ b/content/browser/web_contents/web_drag_dest_mac_unittest.mm
|
| @@ -5,6 +5,7 @@
|
| #include "base/mac/mac_util.h"
|
| #include "base/mac/scoped_nsautorelease_pool.h"
|
| #import "base/mac/scoped_nsobject.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #import "content/browser/web_contents/web_drag_dest_mac.h"
|
| @@ -13,6 +14,7 @@
|
| #include "content/test/test_web_contents.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #import "third_party/mozilla/NSPasteboard+Utils.h"
|
| +#import "ui/base/clipboard/clipboard_util_mac.h"
|
| #import "ui/base/dragdrop/cocoa_dnd_util.h"
|
| #import "ui/gfx/test/ui_cocoa_test_helper.h"
|
|
|
| @@ -82,88 +84,80 @@ TEST_F(WebDragDestTest, Flip) {
|
| }
|
|
|
| TEST_F(WebDragDestTest, URL) {
|
| - NSPasteboard* pboard = nil;
|
| NSString* url = nil;
|
| NSString* title = nil;
|
| GURL result_url;
|
| base::string16 result_title;
|
|
|
| // Put a URL on the pasteboard and check it.
|
| - pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + scoped_refptr<ui::UniquePasteboard> pboard = new ui::UniquePasteboard;
|
| url = @"http://www.google.com/";
|
| - PutURLOnPasteboard(url, pboard);
|
| - EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, NO));
|
| + PutURLOnPasteboard(url, pboard->get());
|
| + EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), NO));
|
| EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
|
| - [pboard releaseGlobally];
|
|
|
| // Put a 'url ' and 'urln' on the pasteboard and check it.
|
| - pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + pboard = new ui::UniquePasteboard;
|
| url = @"http://www.google.com/";
|
| title = @"Title of Awesomeness!",
|
| - PutCoreURLAndTitleOnPasteboard(url, title, pboard);
|
| - EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, NO));
|
| + PutCoreURLAndTitleOnPasteboard(url, title, pboard->get());
|
| + EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), NO));
|
| EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
|
| EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
|
| - [pboard releaseGlobally];
|
|
|
| // Also check that it passes file:// via 'url '/'urln' properly.
|
| - pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + pboard = new ui::UniquePasteboard;
|
| url = @"file:///tmp/dont_delete_me.txt";
|
| title = @"very important";
|
| - PutCoreURLAndTitleOnPasteboard(url, title, pboard);
|
| - EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, NO));
|
| + PutCoreURLAndTitleOnPasteboard(url, title, pboard->get());
|
| + EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), NO));
|
| EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
|
| EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
|
| - [pboard releaseGlobally];
|
|
|
| // And javascript:.
|
| - pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + pboard = new ui::UniquePasteboard;
|
| url = @"javascript:open('http://www.youtube.com/')";
|
| title = @"kill some time";
|
| - PutCoreURLAndTitleOnPasteboard(url, title, pboard);
|
| - EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, NO));
|
| + PutCoreURLAndTitleOnPasteboard(url, title, pboard->get());
|
| + EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), NO));
|
| EXPECT_EQ(base::SysNSStringToUTF8(url), result_url.spec());
|
| EXPECT_EQ(base::SysNSStringToUTF16(title), result_title);
|
| - [pboard releaseGlobally];
|
|
|
| - pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + pboard = new ui::UniquePasteboard;
|
| url = @"/bin/sh";
|
| - [pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType]
|
| - owner:nil];
|
| - [pboard setPropertyList:[NSArray arrayWithObject:url]
|
| - forType:NSFilenamesPboardType];
|
| - EXPECT_FALSE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, NO));
|
| - EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(
|
| - &result_url, &result_title, pboard, YES));
|
| + [pboard->get() declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType]
|
| + owner:nil];
|
| + [pboard->get() setPropertyList:[NSArray arrayWithObject:url]
|
| + forType:NSFilenamesPboardType];
|
| + EXPECT_FALSE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), NO));
|
| + EXPECT_TRUE(ui::PopulateURLAndTitleFromPasteboard(&result_url, &result_title,
|
| + pboard->get(), YES));
|
| base::scoped_nsobject<NSURL> expected_output(
|
| [[NSURL alloc] initFileURLWithPath:url isDirectory:NO]);
|
| EXPECT_EQ([[expected_output absoluteString] UTF8String], result_url.spec());
|
|
|
| EXPECT_EQ("sh", base::UTF16ToUTF8(result_title));
|
| - [pboard releaseGlobally];
|
| }
|
|
|
| TEST_F(WebDragDestTest, Data) {
|
| DropData data;
|
| - NSPasteboard* pboard = [NSPasteboard pasteboardWithUniqueName];
|
| + scoped_refptr<ui::UniquePasteboard> pboard = new ui::UniquePasteboard;
|
|
|
| - PutURLOnPasteboard(@"http://www.google.com", pboard);
|
| - [pboard addTypes:[NSArray arrayWithObjects:NSHTMLPboardType,
|
| - NSStringPboardType, nil]
|
| - owner:nil];
|
| + PutURLOnPasteboard(@"http://www.google.com", pboard->get());
|
| + [pboard->get() addTypes:[NSArray arrayWithObjects:NSHTMLPboardType,
|
| + NSStringPboardType, nil]
|
| + owner:nil];
|
| NSString* htmlString = @"<html><body><b>hi there</b></body></html>";
|
| NSString* textString = @"hi there";
|
| - [pboard setString:htmlString forType:NSHTMLPboardType];
|
| - [pboard setString:textString forType:NSStringPboardType];
|
| - [drag_dest_ populateDropData:&data fromPasteboard:pboard];
|
| + [pboard->get() setString:htmlString forType:NSHTMLPboardType];
|
| + [pboard->get() setString:textString forType:NSStringPboardType];
|
| + [drag_dest_ populateDropData:&data fromPasteboard:pboard->get()];
|
| EXPECT_EQ(data.url.spec(), "http://www.google.com/");
|
| EXPECT_EQ(base::SysNSStringToUTF16(textString), data.text.string());
|
| EXPECT_EQ(base::SysNSStringToUTF16(htmlString), data.html.string());
|
| -
|
| - [pboard releaseGlobally];
|
| }
|
|
|