1// 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_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_
6#define CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_
7
8#include "chrome/browser/extensions/extension_test_notification_observer.h"
9#include "chrome/test/base/web_ui_browser_test.h"
10#include "extensions/common/extension.h"
11
12class Profile;
13
14// C++ test fixture used by extension_settings_browsertest.js.
15class ExtensionSettingsUIBrowserTest : public WebUIBrowserTest {
16 public:
17  ExtensionSettingsUIBrowserTest();
18  virtual ~ExtensionSettingsUIBrowserTest();
19
20 protected:
21  // Get the profile to use.
22  Profile* GetProfile();
23
24  const std::string& last_loaded_extension_id() {
25    return observer_->last_loaded_extension_id();
26  }
27
28  virtual void SetUpOnMainThread() OVERRIDE;
29
30  void InstallGoodExtension();
31
32 private:
33  bool WaitForExtensionViewsToLoad();
34  const extensions::Extension* LoadUnpackedExtension(
35      const base::FilePath& path);
36  const extensions::Extension* InstallExtension(const base::FilePath& path);
37
38  scoped_ptr<ExtensionTestNotificationObserver> observer_;
39
40  // The default profile to be used.
41  Profile* profile_;
42
43  DISALLOW_COPY_AND_ASSIGN(ExtensionSettingsUIBrowserTest);
44};
45
46#endif  // CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_
47