blob: e6bebf588c5bbbb13e64626fea951250afee0418 [file] [log] [blame]
[email protected]c8a118e2013-09-24 21:33:401// Copyright 2013 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#ifndef CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_
6#define CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_
7
8#include <string>
9
[email protected]1ddfd9a2013-11-15 00:12:2010#include "base/metrics/field_trial.h"
avib896c712015-12-26 02:10:4311#include "build/build_config.h"
[email protected]c8a118e2013-09-24 21:33:4012#include "chrome/browser/search/instant_service.h"
[email protected]c8a118e2013-09-24 21:33:4013#include "chrome/test/base/browser_with_test_window_test.h"
[email protected]bf5c532d2014-07-05 00:29:5314#include "components/search_engines/template_url_service.h"
[email protected]c8a118e2013-09-24 21:33:4015
16class InstantServiceObserver;
17
18// This class provides an extension on top of BrowserWithTestWindowTest, and
19// adds some utility methods which can be useful for various unit tests for
20// Embedded Search / Instant implementation classes.
21class InstantUnitTestBase : public BrowserWithTestWindowTest {
22 protected:
[email protected]1ddfd9a2013-11-15 00:12:2023 InstantUnitTestBase();
dchenge1bc7982014-10-30 00:32:4024 ~InstantUnitTestBase() override;
[email protected]1ddfd9a2013-11-15 00:12:2025
dchenge1bc7982014-10-30 00:32:4026 void SetUp() override;
27 void TearDown() override;
[email protected]c8a118e2013-09-24 21:33:4028
jam1c5a91492016-02-24 20:47:5329#if !defined(OS_ANDROID)
[email protected]50da1902014-02-14 02:40:1930 // Query extraction is always enabled on Android and iOS.
31 void SetUpWithoutQueryExtraction();
32#endif
[email protected]1ddfd9a2013-11-15 00:12:2033
[email protected]c8a118e2013-09-24 21:33:4034 // Adds and sets the default search provider using the base_url.
35 // The base_url should have the http[s]:// prefix and a trailing / after the
36 // TLD.
37 // It will always use an instant-enabled configuration using a
38 // search_terms_replacement_key.
[email protected]f1cb5582014-04-25 07:35:2639 void SetUserSelectedDefaultSearchProvider(const std::string& base_url);
[email protected]c8a118e2013-09-24 21:33:4040
41 // Simulates a Google Base URL change as would happen in event of
42 // search-domain-check. Note that the GoogleURLTrackerFactory is disabled for
43 // tests, so this is required.
44 void NotifyGoogleBaseURLUpdate(const std::string& new_google_base_url);
45
mgiuca64ccf2362014-11-10 06:44:2346 bool IsInstantServiceObserver(const InstantServiceObserver* observer) const;
[email protected]c8a118e2013-09-24 21:33:4047
48 InstantService* instant_service_;
49 TemplateURLService* template_url_service_;
dcheng4af48582016-04-19 00:29:3550 std::unique_ptr<base::FieldTrialList> field_trial_list_;
[email protected]50da1902014-02-14 02:40:1951
52 private:
[email protected]c4b2af22014-05-11 19:48:5353 // BrowserWithTestWindowTest override:
Daniel Chenga542fca2014-10-21 09:51:2954 TestingProfile* CreateProfile() override;
[email protected]c4b2af22014-05-11 19:48:5355
[email protected]50da1902014-02-14 02:40:1956 void SetUpHelper();
[email protected]c8a118e2013-09-24 21:33:4057};
58
59#endif // CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_