Home | History | Annotate | Download | only in bookmarks
      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