Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: chrome/browser/ui/omnibox/omnibox_controller_unittest.cc

Issue 13932034: Omnibox refactor, introduced OmniboxController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Corrected code style. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
sreeram 2013/04/24 20:25:03 No "(c)".
beaudoin 2013/04/25 14:57:54 Done.
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 "base/command_line.h"
6 #include "base/prefs/pref_service.h"
7 #include "chrome/browser/autocomplete/autocomplete_controller.h"
8 #include "chrome/browser/autocomplete/autocomplete_provider.h"
9 #include "chrome/browser/ui/omnibox/omnibox_controller.h"
10 #include "chrome/common/chrome_switches.h"
11 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_profile.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace {
16
17 class OmniboxControllerTest : public testing::Test {
18 public:
19 virtual void SetUp() OVERRIDE {
20 profile_.reset(new TestingProfile);
21 }
22
23 virtual void TearDown() OVERRIDE {
24 omnibox_controller_.reset();
25 profile_.reset();
26 }
27
28 protected:
29 void CreateController() {
30 omnibox_controller_.reset(new OmniboxController(NULL, profile_.get()));
31 }
32
33 void AssertProviders(int expected_providers);
34
35 scoped_ptr<TestingProfile> profile_;
36 scoped_ptr<OmniboxController> omnibox_controller_;
37 };
38
39 // Checks that the list of autocomplete providers used by the OmniboxController
40 // matches the one in the |expected_providers| bit field.
41 void OmniboxControllerTest::AssertProviders(int expected_providers) {
42 const ACProviders* providers =
43 omnibox_controller_->autocomplete_controller()->providers();
44
45 for (size_t i = 0; i < providers->size(); ++i) {
46 // Ensure this is a provider we wanted.
47 int type = providers->at(i)->type();
48 ASSERT_EQ(type, expected_providers & type);
49
50 // Remove it from expectations so we fail if it's there twice.
51 expected_providers &= ~type;
52 }
53
54 // Ensure we saw all the providers we expected.
55 ASSERT_EQ(0, expected_providers);
56 }
57
58 TEST_F(OmniboxControllerTest, CheckDefaultAutocompleteProviders) {
59 CreateController();
60 // List of the autocomplete providers we expect by default.
61 int expected_providers =
62 AutocompleteProvider::TYPE_BOOKMARK |
63 AutocompleteProvider::TYPE_BUILTIN |
64 AutocompleteProvider::TYPE_HISTORY_CONTENTS |
65 AutocompleteProvider::TYPE_HISTORY_QUICK |
66 AutocompleteProvider::TYPE_HISTORY_URL |
67 AutocompleteProvider::TYPE_KEYWORD |
68 AutocompleteProvider::TYPE_SEARCH |
69 AutocompleteProvider::TYPE_SHORTCUTS;
sreeram 2013/04/24 20:25:03 I don't this test buys us much. In my opinion, th
beaudoin 2013/04/25 14:57:54 Not sure this test should live in the Autocomplete
70 AssertProviders(expected_providers);
71
72 // With a valid kInstantUIZeroSuggestUrlPrefix we also expect
73 // TYPE_ZERO_SUGGEST.
74 profile_->GetPrefs()->SetString(prefs::kInstantUIZeroSuggestUrlPrefix,
75 std::string("http://dummy.url.com/"));
76 CreateController();
77 AssertProviders(expected_providers | AutocompleteProvider::TYPE_ZERO_SUGGEST);
78 }
79
80 TEST_F(OmniboxControllerTest, CheckAutocompleteProvidersWithInstant) {
81 CommandLine::ForCurrentProcess()->AppendSwitch(
82 switches::kEnableInstantExtendedAPI);
sreeram 2013/04/24 20:25:03 You might also instead consider #including "c/b/se
beaudoin 2013/04/25 14:57:54 Done.
83
84 CreateController();
85 // List of the autocomplete providers we expect by default.
86 int expected_providers =
87 AutocompleteProvider::TYPE_BOOKMARK |
88 AutocompleteProvider::TYPE_BUILTIN |
89 AutocompleteProvider::TYPE_HISTORY_QUICK |
90 AutocompleteProvider::TYPE_HISTORY_URL |
91 AutocompleteProvider::TYPE_KEYWORD |
92 // TODO(beaudoin): remove TYPE_SEARCH once it's no longer needed to pass
93 // the Instant suggestion through via FinalizeInstantQuery.
94 AutocompleteProvider::TYPE_SEARCH;
95 AssertProviders(expected_providers);
96
97 // With a valid kInstantUIZeroSuggestUrlPrefix we also expect
98 // TYPE_ZERO_SUGGEST.
99 profile_->GetPrefs()->SetString(prefs::kInstantUIZeroSuggestUrlPrefix,
100 std::string("http://dummy.url.com/"));
101 CreateController();
102 AssertProviders(expected_providers | AutocompleteProvider::TYPE_ZERO_SUGGEST);
103 }
104
105 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698