diff options
author | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 20:57:14 +0000 |
---|---|---|
committer | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 20:57:14 +0000 |
commit | 25fd1b2ecec6dbbdf281e954b991644f155e9a35 (patch) | |
tree | d5d368234e4fbf7494512f70478c162c4de9c987 /chrome/browser/extensions/extension_apitest.h | |
parent | 4154786bb3f8655d0a9cb6dee37df90ff735c8e7 (diff) | |
download | chromium_src-25fd1b2ecec6dbbdf281e954b991644f155e9a35.zip chromium_src-25fd1b2ecec6dbbdf281e954b991644f155e9a35.tar.gz chromium_src-25fd1b2ecec6dbbdf281e954b991644f155e9a35.tar.bz2 |
An initial pass at structure to do end-to-end extension API tests. I'll work on actually fleshing out some tests in the next CL.
Review URL: http://codereview.chromium.org/171032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23577 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_apitest.h')
-rw-r--r-- | chrome/browser/extensions/extension_apitest.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_apitest.h b/chrome/browser/extensions/extension_apitest.h new file mode 100644 index 0000000..9e1885b --- /dev/null +++ b/chrome/browser/extensions/extension_apitest.h @@ -0,0 +1,47 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_APITEST_H_ +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_APITEST_H_ + +#include "chrome/browser/extensions/extension_browsertest.h" +#include "chrome/common/notification_service.h" + +// The general flow of these API tests should work like this: +// (1) Setup initial browser state (e.g. create some bookmarks for the +// bookmark test) +// (2) Call ASSERT_TRUE(RunExtensionTest(name)); +// (3) In your extension code, run your test and call chrome.test.pass or +// chrome.test.fail +// (4) Verify expected browser state. +// TODO(erikkay): There should also be a way to drive events in these tests. + +class ExtensionApiTest : public ExtensionBrowserTest { + protected: + // Load |extension_name| and wait for pass / fail notification. + // |extension_name| is a directory in "test/data/extensions/api_test". + bool RunExtensionTest(const char* extension_name); + + // Reset |completed_| and wait for a new pass / fail notification. + bool WaitForPassFail(); + + // All extensions tested by ExtensionApiTest are in the "api_test" dir. + virtual void SetUpCommandLine(CommandLine* command_line); + + // NotificationObserver + void ExtensionApiTest::Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details); + + // Did the extension side of the unit test complete? + bool completed_; + + // Did the extension side of the unit test pass? + bool passed_; + + // If it failed, what was the error message? + std::string message_; +}; + +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_APITEST_H_ |