| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdio.h> | 5 #include <stdio.h> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/scoped_observer.h" | 8 #include "base/scoped_observer.h" |
| 9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 Profile* profile = browser()->profile(); | 260 Profile* profile = browser()->profile(); |
| 261 TemplateURLService* model = | 261 TemplateURLService* model = |
| 262 TemplateURLServiceFactory::GetForProfile(profile); | 262 TemplateURLServiceFactory::GetForProfile(profile); |
| 263 ASSERT_TRUE(model); | 263 ASSERT_TRUE(model); |
| 264 | 264 |
| 265 ui_test_utils::WaitForTemplateURLServiceToLoad(model); | 265 ui_test_utils::WaitForTemplateURLServiceToLoad(model); |
| 266 | 266 |
| 267 ASSERT_TRUE(model->loaded()); | 267 ASSERT_TRUE(model->loaded()); |
| 268 | 268 |
| 269 TemplateURLData data; | 269 TemplateURLData data; |
| 270 data.short_name = ASCIIToUTF16(kSearchShortName); | 270 data.SetShortName(ASCIIToUTF16(kSearchShortName)); |
| 271 data.SetKeyword(ASCIIToUTF16(kSearchKeyword)); | 271 data.SetKeyword(ASCIIToUTF16(kSearchKeyword)); |
| 272 data.SetURL(kSearchURL); | 272 data.SetURL(kSearchURL); |
| 273 TemplateURL* template_url = new TemplateURL(data); | 273 TemplateURL* template_url = new TemplateURL(data); |
| 274 model->Add(template_url); | 274 model->Add(template_url); |
| 275 model->SetUserSelectedDefaultSearchProvider(template_url); | 275 model->SetUserSelectedDefaultSearchProvider(template_url); |
| 276 | 276 |
| 277 data.SetKeyword(ASCIIToUTF16(kSearchKeyword2)); | 277 data.SetKeyword(ASCIIToUTF16(kSearchKeyword2)); |
| 278 model->Add(new TemplateURL(data)); | 278 model->Add(new TemplateURL(data)); |
| 279 | 279 |
| 280 // Remove built-in template urls, like google.com, bing.com etc., as they | 280 // Remove built-in template urls, like google.com, bing.com etc., as they |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 ASSERT_TRUE(popup_model); | 623 ASSERT_TRUE(popup_model); |
| 624 | 624 |
| 625 Profile* profile = browser()->profile(); | 625 Profile* profile = browser()->profile(); |
| 626 TemplateURLService* template_url_service = | 626 TemplateURLService* template_url_service = |
| 627 TemplateURLServiceFactory::GetForProfile(profile); | 627 TemplateURLServiceFactory::GetForProfile(profile); |
| 628 | 628 |
| 629 // Add a non-substituting keyword. This ensures the popup will have a | 629 // Add a non-substituting keyword. This ensures the popup will have a |
| 630 // non-verbatim entry with "ab" as a prefix. This way, by arrowing down, we | 630 // non-verbatim entry with "ab" as a prefix. This way, by arrowing down, we |
| 631 // can set "abc" as temporary text in the omnibox. | 631 // can set "abc" as temporary text in the omnibox. |
| 632 TemplateURLData data; | 632 TemplateURLData data; |
| 633 data.short_name = ASCIIToUTF16("abc"); | 633 data.SetShortName(ASCIIToUTF16("abc")); |
| 634 data.SetKeyword(ASCIIToUTF16(kSearchText)); | 634 data.SetKeyword(ASCIIToUTF16(kSearchText)); |
| 635 data.SetURL("http://abc.com/"); | 635 data.SetURL("http://abc.com/"); |
| 636 template_url_service->Add(new TemplateURL(data)); | 636 template_url_service->Add(new TemplateURL(data)); |
| 637 | 637 |
| 638 // Send "ab", so that an "abc" entry appears in the popup. | 638 // Send "ab", so that an "abc" entry appears in the popup. |
| 639 const ui::KeyboardCode kSearchTextPrefixKeys[] = { | 639 const ui::KeyboardCode kSearchTextPrefixKeys[] = { |
| 640 ui::VKEY_A, ui::VKEY_B, ui::VKEY_UNKNOWN | 640 ui::VKEY_A, ui::VKEY_B, ui::VKEY_UNKNOWN |
| 641 }; | 641 }; |
| 642 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextPrefixKeys)); | 642 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextPrefixKeys)); |
| 643 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 643 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); | 1070 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); |
| 1071 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model(); | 1071 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model(); |
| 1072 ASSERT_TRUE(popup_model); | 1072 ASSERT_TRUE(popup_model); |
| 1073 | 1073 |
| 1074 Profile* profile = browser()->profile(); | 1074 Profile* profile = browser()->profile(); |
| 1075 TemplateURLService* template_url_service = | 1075 TemplateURLService* template_url_service = |
| 1076 TemplateURLServiceFactory::GetForProfile(profile); | 1076 TemplateURLServiceFactory::GetForProfile(profile); |
| 1077 | 1077 |
| 1078 // Add a non-default substituting keyword. | 1078 // Add a non-default substituting keyword. |
| 1079 TemplateURLData data; | 1079 TemplateURLData data; |
| 1080 data.short_name = ASCIIToUTF16("Search abc"); | 1080 data.SetShortName(ASCIIToUTF16("Search abc")); |
| 1081 data.SetKeyword(ASCIIToUTF16(kSearchText)); | 1081 data.SetKeyword(ASCIIToUTF16(kSearchText)); |
| 1082 data.SetURL("http://abc.com/{searchTerms}"); | 1082 data.SetURL("http://abc.com/{searchTerms}"); |
| 1083 TemplateURL* template_url = new TemplateURL(data); | 1083 TemplateURL* template_url = new TemplateURL(data); |
| 1084 template_url_service->Add(template_url); | 1084 template_url_service->Add(template_url); |
| 1085 | 1085 |
| 1086 omnibox_view->SetUserText(base::string16()); | 1086 omnibox_view->SetUserText(base::string16()); |
| 1087 | 1087 |
| 1088 // Non-default substituting keyword shouldn't be matched by default. | 1088 // Non-default substituting keyword shouldn't be matched by default. |
| 1089 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 1089 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
| 1090 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1090 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
| 1091 ASSERT_TRUE(popup_model->IsOpen()); | 1091 ASSERT_TRUE(popup_model->IsOpen()); |
| 1092 | 1092 |
| 1093 // Check if the default match result is Search Primary Provider. | 1093 // Check if the default match result is Search Primary Provider. |
| 1094 ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, | 1094 ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
| 1095 popup_model->result().default_match()->type); | 1095 popup_model->result().default_match()->type); |
| 1096 ASSERT_EQ(kSearchTextURL, | 1096 ASSERT_EQ(kSearchTextURL, |
| 1097 popup_model->result().default_match()->destination_url.spec()); | 1097 popup_model->result().default_match()->destination_url.spec()); |
| 1098 | 1098 |
| 1099 omnibox_view->SetUserText(base::string16()); | 1099 omnibox_view->SetUserText(base::string16()); |
| 1100 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1100 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
| 1101 ASSERT_FALSE(popup_model->IsOpen()); | 1101 ASSERT_FALSE(popup_model->IsOpen()); |
| 1102 | 1102 |
| 1103 // Try a non-substituting keyword. | 1103 // Try a non-substituting keyword. |
| 1104 template_url_service->Remove(template_url); | 1104 template_url_service->Remove(template_url); |
| 1105 data.short_name = ASCIIToUTF16("abc"); | 1105 data.SetShortName(ASCIIToUTF16("abc")); |
| 1106 data.SetURL("http://abc.com/"); | 1106 data.SetURL("http://abc.com/"); |
| 1107 template_url_service->Add(new TemplateURL(data)); | 1107 template_url_service->Add(new TemplateURL(data)); |
| 1108 | 1108 |
| 1109 // We always allow exact matches for non-substituting keywords. | 1109 // We always allow exact matches for non-substituting keywords. |
| 1110 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 1110 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
| 1111 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1111 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
| 1112 ASSERT_TRUE(popup_model->IsOpen()); | 1112 ASSERT_TRUE(popup_model->IsOpen()); |
| 1113 ASSERT_EQ(AutocompleteMatchType::HISTORY_KEYWORD, | 1113 ASSERT_EQ(AutocompleteMatchType::HISTORY_KEYWORD, |
| 1114 popup_model->result().default_match()->type); | 1114 popup_model->result().default_match()->type); |
| 1115 ASSERT_EQ("http://abc.com/", | 1115 ASSERT_EQ("http://abc.com/", |
| (...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1859 browser()->toolbar_model()->set_url_replacement_enabled(false); | 1859 browser()->toolbar_model()->set_url_replacement_enabled(false); |
| 1860 test_toolbar_model->set_text(url_b); | 1860 test_toolbar_model->set_text(url_b); |
| 1861 omnibox_view->Update(); | 1861 omnibox_view->Update(); |
| 1862 EXPECT_EQ(url_a, omnibox_view->GetText()); | 1862 EXPECT_EQ(url_a, omnibox_view->GetText()); |
| 1863 omnibox_view->RevertAll(); | 1863 omnibox_view->RevertAll(); |
| 1864 EXPECT_EQ(url_b, omnibox_view->GetText()); | 1864 EXPECT_EQ(url_b, omnibox_view->GetText()); |
| 1865 test_toolbar_model->set_text(url_c); | 1865 test_toolbar_model->set_text(url_c); |
| 1866 omnibox_view->Update(); | 1866 omnibox_view->Update(); |
| 1867 EXPECT_EQ(url_c, omnibox_view->GetText()); | 1867 EXPECT_EQ(url_c, omnibox_view->GetText()); |
| 1868 } | 1868 } |
| OLD | NEW |