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 3 // found in the LICENSE file. 4 5 #include <string> 6 #include "base/strings/utf_string_conversions.h" 7 #include "chrome/browser/bookmarks/bookmark_model.h" 8 #include "chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "ui/base/dragdrop/gtk_dnd_util.h" 11 #include "url/gurl.h" 12 13 TEST(BookmarkUtilsGtkTest, GetNodesFromSelectionInvalid) { 14 std::vector<const BookmarkNode*> nodes; 15 nodes = bookmark_utils::GetNodesFromSelection(NULL, NULL, 0, NULL, NULL, 16 NULL); 17 EXPECT_EQ(0u, nodes.size()); 18 19 GtkSelectionData data; 20 data.data = NULL; 21 data.length = 0; 22 nodes = bookmark_utils::GetNodesFromSelection(NULL, &data, 0, NULL, NULL, 23 NULL); 24 EXPECT_EQ(0u, nodes.size()); 25 26 nodes = bookmark_utils::GetNodesFromSelection(NULL, NULL, 27 ui::CHROME_BOOKMARK_ITEM, NULL, NULL, NULL); 28 EXPECT_EQ(0u, nodes.size()); 29 30 data.data = NULL; 31 data.length = 0; 32 nodes = bookmark_utils::GetNodesFromSelection(NULL, &data, 33 ui::CHROME_BOOKMARK_ITEM, NULL, NULL, NULL); 34 EXPECT_EQ(0u, nodes.size()); 35 36 guchar test_data[] = ""; 37 data.data = test_data; 38 data.length = 0; 39 nodes = bookmark_utils::GetNodesFromSelection(NULL, &data, 40 ui::CHROME_BOOKMARK_ITEM, NULL, NULL, NULL); 41 EXPECT_EQ(0u, nodes.size()); 42 } 43 44 TEST(BookmarkUtilsGtkTest, WriteBookmarkToSelectionHTML) { 45 BookmarkNode x(GURL("http://www.google.com")); 46 x.SetTitle(string16(ASCIIToUTF16("Google"))); 47 GtkSelectionData data; 48 data.data = NULL; 49 data.length = 0; 50 bookmark_utils::WriteBookmarkToSelection(&x, &data, ui::TEXT_HTML, NULL); 51 std::string selection(reinterpret_cast<char*>(data.data), data.length); 52 EXPECT_EQ("<a href=\"http://www.google.com/\">Google</a>", selection); 53 54 // Free the copied data in GtkSelectionData 55 gtk_selection_data_set(&data, data.type, data.format, NULL, -1); 56 } 57