Home | History | Annotate | Download | only in test
      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
      3 // found in the LICENSE file.
      4 
      5 // The IE configurator mutates Internet Explorer's configuration to put it in a
      6 // (thought to be) known good state for the Chrome Frame tests.  The current
      7 // user's IE configuration may be left in a different state than it was
      8 // initially; see the implementation for details.
      9 
     10 #ifndef CHROME_FRAME_TEST_IE_CONFIGURATOR_H_
     11 #define CHROME_FRAME_TEST_IE_CONFIGURATOR_H_
     12 
     13 #include "base/basictypes.h"
     14 
     15 namespace chrome_frame_test {
     16 
     17 // Abstract interface to be implemented for per-version configurators.
     18 class IEConfigurator {
     19  public:
     20   virtual ~IEConfigurator();
     21 
     22   // Initializes a configurator, causing it to cache existing configuration
     23   // settings that it will modify.
     24   virtual void Initialize() = 0;
     25 
     26   // Applies all configuration settings.
     27   virtual void ApplySettings() = 0;
     28 
     29   // Reverts all configuration settings.
     30   virtual void RevertSettings() = 0;
     31 
     32  protected:
     33   IEConfigurator();
     34 };
     35 
     36 // Returns a new configurator for the current configuration, or NULL if none
     37 // applies.
     38 IEConfigurator* CreateConfigurator();
     39 
     40 // Installs a configurator in the Google Test unit test singleton.
     41 void InstallIEConfigurator();
     42 
     43 }  // namespace chrome_frame_test
     44 
     45 #endif  // CHROME_FRAME_TEST_IE_CONFIGURATOR_H_
     46