OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/pickle.h" | 8 #include "base/pickle.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "ui/base/dragdrop/gtk_dnd_util.h" | 12 #include "ui/base/dragdrop/gtk_dnd_util.h" |
13 | 13 |
14 namespace ui { | 14 namespace ui { |
15 | 15 |
16 TEST(GtkDndUtilTest, ExtractNamedURLValid) { | 16 TEST(GtkDndUtilTest, ExtractNamedURLValid) { |
17 const std::string kTitle = "title"; | 17 const std::string kTitle = "title"; |
18 const std::string kUrl = "http://www.foobar.com/"; | 18 const std::string kUrl = "http://www.foobar.com/"; |
19 Pickle pickle; | 19 Pickle pickle; |
20 pickle.WriteString(kTitle); | 20 pickle.WriteString(kTitle); |
21 pickle.WriteString(kUrl); | 21 pickle.WriteString(kUrl); |
22 | 22 |
23 GtkSelectionData data; | 23 GtkSelectionData data; |
24 scoped_array<guchar> test_data(new guchar[pickle.size()]); | 24 scoped_ptr<guchar[]> test_data(new guchar[pickle.size()]); |
25 memcpy(test_data.get(), pickle.data(), pickle.size()); | 25 memcpy(test_data.get(), pickle.data(), pickle.size()); |
26 data.data = test_data.get(); | 26 data.data = test_data.get(); |
27 data.length = pickle.size(); | 27 data.length = pickle.size(); |
28 | 28 |
29 GURL url; | 29 GURL url; |
30 string16 title; | 30 string16 title; |
31 ASSERT_EQ(true, ui::ExtractNamedURL(&data, &url, &title)); | 31 ASSERT_EQ(true, ui::ExtractNamedURL(&data, &url, &title)); |
32 EXPECT_EQ(UTF8ToUTF16(kTitle), title); | 32 EXPECT_EQ(UTF8ToUTF16(kTitle), title); |
33 EXPECT_EQ(GURL(kUrl), url); | 33 EXPECT_EQ(GURL(kUrl), url); |
34 } | 34 } |
35 | 35 |
36 TEST(GtkDndUtilTest, ExtractNamedURLInvalidURL) { | 36 TEST(GtkDndUtilTest, ExtractNamedURLInvalidURL) { |
37 const std::string kTitle = "title"; | 37 const std::string kTitle = "title"; |
38 const std::string kBadUrl = "foobar"; | 38 const std::string kBadUrl = "foobar"; |
39 Pickle pickle; | 39 Pickle pickle; |
40 pickle.WriteString(kTitle); | 40 pickle.WriteString(kTitle); |
41 pickle.WriteString(kBadUrl); | 41 pickle.WriteString(kBadUrl); |
42 | 42 |
43 GtkSelectionData data; | 43 GtkSelectionData data; |
44 scoped_array<guchar> test_data(new guchar[pickle.size()]); | 44 scoped_ptr<guchar[]> test_data(new guchar[pickle.size()]); |
45 memcpy(test_data.get(), pickle.data(), pickle.size()); | 45 memcpy(test_data.get(), pickle.data(), pickle.size()); |
46 data.data = test_data.get(); | 46 data.data = test_data.get(); |
47 data.length = pickle.size(); | 47 data.length = pickle.size(); |
48 | 48 |
49 GURL url; | 49 GURL url; |
50 string16 title; | 50 string16 title; |
51 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); | 51 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); |
52 } | 52 } |
53 | 53 |
54 TEST(GtkDndUtilTest, ExtractNamedURLInvalidInput) { | 54 TEST(GtkDndUtilTest, ExtractNamedURLInvalidInput) { |
55 GURL url; | 55 GURL url; |
56 string16 title; | 56 string16 title; |
57 GtkSelectionData data; | 57 GtkSelectionData data; |
58 data.data = NULL; | 58 data.data = NULL; |
59 data.length = 0; | 59 data.length = 0; |
60 | 60 |
61 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); | 61 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); |
62 | 62 |
63 guchar empty_data[] = ""; | 63 guchar empty_data[] = ""; |
64 data.data = empty_data; | 64 data.data = empty_data; |
65 data.length = 0; | 65 data.length = 0; |
66 | 66 |
67 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); | 67 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); |
68 | 68 |
69 const std::string kTitle = "title"; | 69 const std::string kTitle = "title"; |
70 Pickle pickle; | 70 Pickle pickle; |
71 pickle.WriteString(kTitle); | 71 pickle.WriteString(kTitle); |
72 | 72 |
73 scoped_array<guchar> test_data(new guchar[pickle.size()]); | 73 scoped_ptr<guchar[]> test_data(new guchar[pickle.size()]); |
74 memcpy(test_data.get(), pickle.data(), pickle.size()); | 74 memcpy(test_data.get(), pickle.data(), pickle.size()); |
75 data.data = test_data.get(); | 75 data.data = test_data.get(); |
76 data.length = pickle.size(); | 76 data.length = pickle.size(); |
77 | 77 |
78 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); | 78 EXPECT_FALSE(ui::ExtractNamedURL(&data, &url, &title)); |
79 } | 79 } |
80 | 80 |
81 } // namespace ui | 81 } // namespace ui |
OLD | NEW |