diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-01 14:55:28 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-01 14:55:28 +0000 |
commit | eda571316709a890cf109a0bcfd23f6a0f8710e9 (patch) | |
tree | cc9c0fe25a33295198a0808dd152f3e4b0eea90c /chrome | |
parent | e3d2b690d1e9294050376e73c1a9b5c87dcd47ec (diff) | |
download | chromium_src-eda571316709a890cf109a0bcfd23f6a0f8710e9.zip chromium_src-eda571316709a890cf109a0bcfd23f6a0f8710e9.tar.gz chromium_src-eda571316709a890cf109a0bcfd23f6a0f8710e9.tar.bz2 |
Fixes bug in determining if we can paste from the clipboard. Need to
use IsFormatAvailableByString rather than IsFormatAvailable.
BUG=21106
TEST=see bug, also covered by unit test now.
Review URL: http://codereview.chromium.org/256016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27720 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.cc | 7 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils_unittest.cc | 34 |
2 files changed, 40 insertions, 1 deletions
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index 25daf35..94fe0ff 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -391,8 +391,13 @@ bool CanPasteFromClipboard(const BookmarkNode* node) { if (!node) return false; - return g_browser_process->clipboard()->IsFormatAvailable( +#if defined(OS_MACOSX) + NOTIMPLEMENTED(); + return false; +#else + return g_browser_process->clipboard()->IsFormatAvailableByString( BookmarkDragData::kClipboardFormatString, Clipboard::BUFFER_STANDARD); +#endif } std::string GetNameForURL(const GURL& url) { diff --git a/chrome/browser/bookmarks/bookmark_utils_unittest.cc b/chrome/browser/bookmarks/bookmark_utils_unittest.cc index e89ad8e..b1b56a5 100644 --- a/chrome/browser/bookmarks/bookmark_utils_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_utils_unittest.cc @@ -4,6 +4,10 @@ #include "testing/gtest/include/gtest/gtest.h" +#include "base/message_loop.h" +#include "base/scoped_clipboard_writer.h" +#include "base/string_util.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/bookmarks/bookmark_utils.h" @@ -75,3 +79,33 @@ TEST_F(BookmarkUtilsTest, DoesBookmarkContainText) { node, L"qcka1pmc", L"ja")); } +#if !defined(OS_MACOSX) +TEST_F(BookmarkUtilsTest, CopyPaste) { + // Clipboard requires a message loop. + MessageLoopForUI loop; + + BookmarkModel model(NULL); + const BookmarkNode* node = model.AddURL(model.other_node(), 0, L"foo bar", + GURL("http://www.google.com")); + + // Copy a node to the clipboard. + std::vector<const BookmarkNode*> nodes; + nodes.push_back(node); + bookmark_utils::CopyToClipboard(&model, nodes, false); + + // And make sure we can paste a bookmark from the clipboard. + EXPECT_TRUE( + bookmark_utils::CanPasteFromClipboard(model.GetBookmarkBarNode())); + + // Write some text to the clipboard. + { + ScopedClipboardWriter clipboard_writer(g_browser_process->clipboard()); + clipboard_writer.WriteText(ASCIIToUTF16("foo")); + } + + // Now we shouldn't be able to paste from the clipboard. + EXPECT_FALSE( + bookmark_utils::CanPasteFromClipboard(model.GetBookmarkBarNode())); +} +#endif + |