summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-01 14:55:28 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-01 14:55:28 +0000
commiteda571316709a890cf109a0bcfd23f6a0f8710e9 (patch)
treecc9c0fe25a33295198a0808dd152f3e4b0eea90c /chrome
parente3d2b690d1e9294050376e73c1a9b5c87dcd47ec (diff)
downloadchromium_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.cc7
-rw-r--r--chrome/browser/bookmarks/bookmark_utils_unittest.cc34
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
+