168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file. 468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#ifndef CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_ 668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#define CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_ 768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include <string> 968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/metrics/field_trial.h" 1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/browser/search/instant_service.h" 1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "chrome/test/base/browser_with_test_window_test.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/template_url_service.h" 1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)class InstantServiceObserver; 1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// This class provides an extension on top of BrowserWithTestWindowTest, and 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// adds some utility methods which can be useful for various unit tests for 1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Embedded Search / Instant implementation classes. 2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)class InstantUnitTestBase : public BrowserWithTestWindowTest { 2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) protected: 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) InstantUnitTestBase(); 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~InstantUnitTestBase(); 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void SetUp() OVERRIDE; 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void TearDown() OVERRIDE; 2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if !defined(OS_IOS) && !defined(OS_ANDROID) 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Query extraction is always enabled on Android and iOS. 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void SetUpWithoutQueryExtraction(); 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Adds and sets the default search provider using the base_url. 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The base_url should have the http[s]:// prefix and a trailing / after the 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // TLD. 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // It will always use an instant-enabled configuration using a 3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // search_terms_replacement_key. 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void SetUserSelectedDefaultSearchProvider(const std::string& base_url); 3968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 4068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Simulates a Google Base URL change as would happen in event of 4168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // search-domain-check. Note that the GoogleURLTrackerFactory is disabled for 4268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // tests, so this is required. 4368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) void NotifyGoogleBaseURLUpdate(const std::string& new_google_base_url); 4468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 4568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool IsInstantServiceObserver(InstantServiceObserver* observer); 4668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 4768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) InstantService* instant_service_; 4868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) TemplateURLService* template_url_service_; 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<base::FieldTrialList> field_trial_list_; 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private: 52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // BrowserWithTestWindowTest override: 53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual TestingProfile* CreateProfile() OVERRIDE; 54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void SetUpHelper(); 5668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}; 5768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 5868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#endif // CHROME_BROWSER_SEARCH_INSTANT_UNITTEST_BASE_H_ 59