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 "base/string_util.h" | 5 #include "base/string_util.h" |
6 #include "base/stringprintf.h" | 6 #include "base/stringprintf.h" |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/autocomplete/autocomplete.h" | 8 #include "chrome/browser/autocomplete/autocomplete.h" |
9 #include "chrome/browser/autocomplete/autocomplete_edit.h" | 9 #include "chrome/browser/autocomplete/autocomplete_edit.h" |
10 #include "chrome/browser/autocomplete/autocomplete_edit_view.h" | 10 #include "chrome/browser/autocomplete/autocomplete_edit_view.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 // Basic test is flaky on ChromeOS. | 24 // Basic test is flaky on ChromeOS. |
25 // http://crbug.com/52929 | 25 // http://crbug.com/52929 |
26 #if defined(OS_CHROMEOS) | 26 #if defined(OS_CHROMEOS) |
27 #define MAYBE_Basic FLAKY_Basic | 27 #define MAYBE_Basic FLAKY_Basic |
28 #else | 28 #else |
29 #define MAYBE_Basic Basic | 29 #define MAYBE_Basic Basic |
30 #endif | 30 #endif |
31 | 31 |
32 namespace { | 32 namespace { |
33 | 33 |
34 string16 AutocompleteResultAsString(const AutocompleteResult& result) { | 34 std::wstring AutocompleteResultAsString(const AutocompleteResult& result) { |
35 std::string output(base::StringPrintf("{%lu} ", result.size())); | 35 std::wstring output(base::StringPrintf(L"{%d} ", result.size())); |
36 for (size_t i = 0; i < result.size(); ++i) { | 36 for (size_t i = 0; i < result.size(); ++i) { |
37 AutocompleteMatch match = result.match_at(i); | 37 AutocompleteMatch match = result.match_at(i); |
38 std::string provider_name = match.provider->name(); | 38 std::wstring provider_name(ASCIIToWide(match.provider->name())); |
39 output.append(base::StringPrintf("[\"%s\" by \"%s\"] ", | 39 output.append(base::StringPrintf(L"[\"%ls\" by \"%ls\"] ", |
40 UTF16ToUTF8(match.contents).c_str(), | 40 match.contents.c_str(), |
41 provider_name.c_str())); | 41 provider_name.c_str())); |
42 } | 42 } |
43 return UTF8ToUTF16(output); | 43 return output; |
44 } | 44 } |
45 | 45 |
46 } // namespace | 46 } // namespace |
47 | 47 |
48 class OmniboxApiTest : public ExtensionApiTest { | 48 class OmniboxApiTest : public ExtensionApiTest { |
49 protected: | 49 protected: |
50 LocationBar* GetLocationBar() const { | 50 LocationBar* GetLocationBar() const { |
51 return browser()->window()->GetLocationBar(); | 51 return browser()->window()->GetLocationBar(); |
52 } | 52 } |
53 | 53 |
(...skipping 27 matching lines...) Expand all Loading... |
81 // The results depend on the TemplateURLModel being loaded. Make sure it is | 81 // The results depend on the TemplateURLModel being loaded. Make sure it is |
82 // loaded so that the autocomplete results are consistent. | 82 // loaded so that the autocomplete results are consistent. |
83 WaitForTemplateURLModelToLoad(); | 83 WaitForTemplateURLModelToLoad(); |
84 | 84 |
85 LocationBar* location_bar = GetLocationBar(); | 85 LocationBar* location_bar = GetLocationBar(); |
86 AutocompleteController* autocomplete_controller = GetAutocompleteController(); | 86 AutocompleteController* autocomplete_controller = GetAutocompleteController(); |
87 | 87 |
88 // Test that our extension's keyword is suggested to us when we partially type | 88 // Test that our extension's keyword is suggested to us when we partially type |
89 // it. | 89 // it. |
90 { | 90 { |
91 autocomplete_controller->Start(ASCIIToUTF16("keywor"), string16(), | 91 autocomplete_controller->Start(L"keywor", std::wstring(), |
92 true, false, true, false); | 92 true, false, true, false); |
93 | 93 |
94 WaitForAutocompleteDone(autocomplete_controller); | 94 WaitForAutocompleteDone(autocomplete_controller); |
95 EXPECT_TRUE(autocomplete_controller->done()); | 95 EXPECT_TRUE(autocomplete_controller->done()); |
96 EXPECT_EQ(std::wstring(), location_bar->GetInputString()); | 96 EXPECT_EQ(std::wstring(), location_bar->GetInputString()); |
97 EXPECT_EQ(string16(), location_bar->location_entry()->GetText()); | 97 EXPECT_EQ(std::wstring(), location_bar->location_entry()->GetText()); |
98 EXPECT_TRUE(location_bar->location_entry()->IsSelectAll()); | 98 EXPECT_TRUE(location_bar->location_entry()->IsSelectAll()); |
99 | 99 |
100 // First result should be to search for what was typed, second should be to | 100 // First result should be to search for what was typed, second should be to |
101 // enter "extension keyword" mode. | 101 // enter "extension keyword" mode. |
102 const AutocompleteResult& result = autocomplete_controller->result(); | 102 const AutocompleteResult& result = autocomplete_controller->result(); |
103 ASSERT_EQ(2U, result.size()) << AutocompleteResultAsString(result); | 103 ASSERT_EQ(2U, result.size()) << AutocompleteResultAsString(result); |
104 AutocompleteMatch match = result.match_at(0); | 104 AutocompleteMatch match = result.match_at(0); |
105 EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type); | 105 EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type); |
106 EXPECT_FALSE(match.deletable); | 106 EXPECT_FALSE(match.deletable); |
107 | 107 |
108 match = result.match_at(1); | 108 match = result.match_at(1); |
109 ASSERT_TRUE(match.template_url); | 109 ASSERT_TRUE(match.template_url); |
110 EXPECT_TRUE(match.template_url->IsExtensionKeyword()); | 110 EXPECT_TRUE(match.template_url->IsExtensionKeyword()); |
111 EXPECT_EQ(ASCIIToUTF16("keyword"), match.template_url->keyword()); | 111 EXPECT_EQ(ASCIIToUTF16("keyword"), match.template_url->keyword()); |
112 } | 112 } |
113 | 113 |
114 // Test that our extension can send suggestions back to us. | 114 // Test that our extension can send suggestions back to us. |
115 { | 115 { |
116 autocomplete_controller->Start(ASCIIToUTF16("keyword suggestio"), | 116 autocomplete_controller->Start(L"keyword suggestio", std::wstring(), |
117 string16(), true, false, true, false); | 117 true, false, true, false); |
118 | 118 |
119 WaitForAutocompleteDone(autocomplete_controller); | 119 WaitForAutocompleteDone(autocomplete_controller); |
120 EXPECT_TRUE(autocomplete_controller->done()); | 120 EXPECT_TRUE(autocomplete_controller->done()); |
121 | 121 |
122 // First result should be to invoke the keyword with what we typed, 2-4 | 122 // First result should be to invoke the keyword with what we typed, 2-4 |
123 // should be to invoke with suggestions from the extension, and the last | 123 // should be to invoke with suggestions from the extension, and the last |
124 // should be to search for what we typed. | 124 // should be to search for what we typed. |
125 const AutocompleteResult& result = autocomplete_controller->result(); | 125 const AutocompleteResult& result = autocomplete_controller->result(); |
126 ASSERT_EQ(5U, result.size()) << AutocompleteResultAsString(result); | 126 ASSERT_EQ(5U, result.size()) << AutocompleteResultAsString(result); |
127 | 127 |
128 ASSERT_TRUE(result.match_at(0).template_url); | 128 ASSERT_TRUE(result.match_at(0).template_url); |
129 EXPECT_EQ(ASCIIToUTF16("keyword suggestio"), | 129 EXPECT_EQ(L"keyword suggestio", result.match_at(0).fill_into_edit); |
130 result.match_at(0).fill_into_edit); | 130 EXPECT_EQ(L"keyword suggestion1", result.match_at(1).fill_into_edit); |
131 EXPECT_EQ(ASCIIToUTF16("keyword suggestion1"), | 131 EXPECT_EQ(L"keyword suggestion2", result.match_at(2).fill_into_edit); |
132 result.match_at(1).fill_into_edit); | 132 EXPECT_EQ(L"keyword suggestion3", result.match_at(3).fill_into_edit); |
133 EXPECT_EQ(ASCIIToUTF16("keyword suggestion2"), | |
134 result.match_at(2).fill_into_edit); | |
135 EXPECT_EQ(ASCIIToUTF16("keyword suggestion3"), | |
136 result.match_at(3).fill_into_edit); | |
137 | 133 |
138 string16 description = | 134 std::wstring description = |
139 ASCIIToUTF16("Description with style: <match>, [dim], (url till end)"); | 135 L"Description with style: <match>, [dim], (url till end)"; |
140 EXPECT_EQ(description, result.match_at(1).contents); | 136 EXPECT_EQ(description, result.match_at(1).contents); |
141 ASSERT_EQ(6u, result.match_at(1).contents_class.size()); | 137 ASSERT_EQ(6u, result.match_at(1).contents_class.size()); |
142 | 138 |
143 EXPECT_EQ(0u, | 139 EXPECT_EQ(0u, |
144 result.match_at(1).contents_class[0].offset); | 140 result.match_at(1).contents_class[0].offset); |
145 EXPECT_EQ(ACMatchClassification::NONE, | 141 EXPECT_EQ(ACMatchClassification::NONE, |
146 result.match_at(1).contents_class[0].style); | 142 result.match_at(1).contents_class[0].style); |
147 | 143 |
148 EXPECT_EQ(description.find('<'), | 144 EXPECT_EQ(description.find('<'), |
149 result.match_at(1).contents_class[1].offset); | 145 result.match_at(1).contents_class[1].offset); |
(...skipping 20 matching lines...) Expand all Loading... |
170 EXPECT_EQ(ACMatchClassification::URL, | 166 EXPECT_EQ(ACMatchClassification::URL, |
171 result.match_at(1).contents_class[5].style); | 167 result.match_at(1).contents_class[5].style); |
172 | 168 |
173 AutocompleteMatch match = result.match_at(4); | 169 AutocompleteMatch match = result.match_at(4); |
174 EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type); | 170 EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type); |
175 EXPECT_FALSE(match.deletable); | 171 EXPECT_FALSE(match.deletable); |
176 } | 172 } |
177 | 173 |
178 { | 174 { |
179 ResultCatcher catcher; | 175 ResultCatcher catcher; |
180 autocomplete_controller->Start(ASCIIToUTF16("keyword command"), string16(), | 176 autocomplete_controller->Start(L"keyword command", std::wstring(), |
181 true, false, true, false); | 177 true, false, true, false); |
182 location_bar->AcceptInput(); | 178 location_bar->AcceptInput(); |
183 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 179 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
184 } | 180 } |
185 } | 181 } |
OLD | NEW |