Index: chrome/test/base/web_ui_browser_test.cc |
diff --git a/chrome/test/base/web_ui_browsertest.cc b/chrome/test/base/web_ui_browser_test.cc |
similarity index 67% |
rename from chrome/test/base/web_ui_browsertest.cc |
rename to chrome/test/base/web_ui_browser_test.cc |
index 1f874e2df74bb126c398c582bed732599dab5100..5cecf01bbe3935d446f095bf7ba9caf78de0e4a9 100644 |
--- a/chrome/test/base/web_ui_browsertest.cc |
+++ b/chrome/test/base/web_ui_browser_test.cc |
@@ -2,13 +2,11 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/test/base/web_ui_browsertest.h" |
+#include "chrome/test/base/web_ui_browser_test.h" |
#include <string> |
#include <vector> |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
#include "base/lazy_instance.h" |
#include "base/memory/ref_counted_memory.h" |
#include "base/path_service.h" |
@@ -19,19 +17,12 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_commands.h" |
-#include "chrome/browser/ui/browser_navigator.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
-#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" |
#include "chrome/browser/ui/webui/web_ui_test_handler.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/base/test_chrome_web_ui_controller_factory.h" |
#include "chrome/test/base/ui_test_utils.h" |
-#include "content/public/browser/navigation_controller.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/public/browser/notification_service.h" |
-#include "content/public/browser/notification_types.h" |
#include "content/public/browser/url_data_source.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_contents_observer.h" |
@@ -40,8 +31,6 @@ |
#include "content/public/test/browser_test_utils.h" |
#include "content/public/test/test_navigation_observer.h" |
#include "net/base/filename_util.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest-spi.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/base/resource/resource_handle.h" |
@@ -49,7 +38,6 @@ |
#include "chrome/browser/printing/print_preview_dialog_controller.h" |
#endif |
-using content::NavigationController; |
using content::RenderViewHost; |
using content::WebContents; |
using content::WebUIController; |
@@ -587,230 +575,3 @@ void WebUIBrowserTest::SetupHandlers() { |
GetMockMessageHandler()->RegisterMessages(); |
} |
} |
- |
-// According to the interface for EXPECT_FATAL_FAILURE |
-// (http://code.google.com/p/googletest/wiki/AdvancedGuide#Catching_Failures) |
-// the statement must be statically available. Therefore, we make a static |
-// global s_test_ which should point to |this| for the duration of the test run |
-// and be cleared afterward. |
-class WebUIBrowserExpectFailTest : public WebUIBrowserTest { |
- public: |
- WebUIBrowserExpectFailTest() { |
- EXPECT_FALSE(s_test_); |
- s_test_ = this; |
- } |
- |
- protected: |
- virtual ~WebUIBrowserExpectFailTest() { |
- EXPECT_TRUE(s_test_); |
- s_test_ = NULL; |
- } |
- |
- static void RunJavascriptTestNoReturn(const std::string& testname) { |
- EXPECT_TRUE(s_test_); |
- s_test_->RunJavascriptTest(testname); |
- } |
- |
- static void RunJavascriptAsyncTestNoReturn(const std::string& testname) { |
- EXPECT_TRUE(s_test_); |
- s_test_->RunJavascriptAsyncTest(testname); |
- } |
- |
- private: |
- static WebUIBrowserTest* s_test_; |
-}; |
- |
-WebUIBrowserTest* WebUIBrowserExpectFailTest::s_test_ = NULL; |
- |
-// Test that bogus javascript fails fast - no timeout waiting for result. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserExpectFailTest, TestFailsFast) { |
- AddLibrary(base::FilePath(FILE_PATH_LITERAL("sample_downloads.js"))); |
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIDownloadsURL)); |
- EXPECT_FATAL_FAILURE(RunJavascriptTestNoReturn("DISABLED_BogusFunctionName"), |
- "WebUITestHandler::JavaScriptComplete"); |
-} |
- |
-// Test that bogus javascript fails fast - no timeout waiting for result. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserExpectFailTest, TestRuntimeErrorFailsFast) { |
- AddLibrary(base::FilePath(FILE_PATH_LITERAL("runtime_error.js"))); |
- ui_test_utils::NavigateToURL(browser(), GURL(kDummyURL)); |
- EXPECT_FATAL_FAILURE(RunJavascriptTestNoReturn("TestRuntimeErrorFailsFast"), |
- "WebUITestHandler::JavaScriptComplete"); |
-} |
- |
-// Test that bogus javascript fails async test fast as well - no timeout waiting |
-// for result. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserExpectFailTest, TestFailsAsyncFast) { |
- AddLibrary(base::FilePath(FILE_PATH_LITERAL("sample_downloads.js"))); |
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIDownloadsURL)); |
- EXPECT_FATAL_FAILURE( |
- RunJavascriptAsyncTestNoReturn("DISABLED_BogusFunctionName"), |
- "WebUITestHandler::JavaScriptComplete"); |
-} |
- |
-// Tests that the async framework works. |
-class WebUIBrowserAsyncTest : public WebUIBrowserTest { |
- public: |
- // Calls the testDone() function from test_api.js |
- void TestDone() { |
- RunJavascriptFunction("testDone"); |
- } |
- |
- // Starts a failing test. |
- void RunTestFailsAssert() { |
- RunJavascriptFunction("runAsync", new base::StringValue("testFailsAssert")); |
- } |
- |
- // Starts a passing test. |
- void RunTestPasses() { |
- RunJavascriptFunction("runAsync", new base::StringValue("testPasses")); |
- } |
- |
- protected: |
- WebUIBrowserAsyncTest() {} |
- |
- // Class to synchronize asynchronous javascript activity with the tests. |
- class AsyncWebUIMessageHandler : public WebUIMessageHandler { |
- public: |
- AsyncWebUIMessageHandler() {} |
- |
- MOCK_METHOD1(HandleTestContinues, void(const base::ListValue*)); |
- MOCK_METHOD1(HandleTestFails, void(const base::ListValue*)); |
- MOCK_METHOD1(HandleTestPasses, void(const base::ListValue*)); |
- |
- private: |
- virtual void RegisterMessages() OVERRIDE { |
- web_ui()->RegisterMessageCallback("startAsyncTest", |
- base::Bind(&AsyncWebUIMessageHandler::HandleStartAsyncTest, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("testContinues", |
- base::Bind(&AsyncWebUIMessageHandler::HandleTestContinues, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("testFails", |
- base::Bind(&AsyncWebUIMessageHandler::HandleTestFails, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("testPasses", |
- base::Bind(&AsyncWebUIMessageHandler::HandleTestPasses, |
- base::Unretained(this))); |
- } |
- |
- // Starts the test in |list_value|[0] with the runAsync wrapper. |
- void HandleStartAsyncTest(const base::ListValue* list_value) { |
- const base::Value* test_name; |
- ASSERT_TRUE(list_value->Get(0, &test_name)); |
- web_ui()->CallJavascriptFunction("runAsync", *test_name); |
- } |
- |
- DISALLOW_COPY_AND_ASSIGN(AsyncWebUIMessageHandler); |
- }; |
- |
- // Handler for this object. |
- ::testing::StrictMock<AsyncWebUIMessageHandler> message_handler_; |
- |
- private: |
- // Provide this object's handler. |
- virtual WebUIMessageHandler* GetMockMessageHandler() OVERRIDE { |
- return &message_handler_; |
- } |
- |
- // Set up and browse to kDummyURL for all tests. |
- virtual void SetUpOnMainThread() OVERRIDE { |
- WebUIBrowserTest::SetUpOnMainThread(); |
- AddLibrary(base::FilePath(FILE_PATH_LITERAL("async.js"))); |
- ui_test_utils::NavigateToURL(browser(), GURL(kDummyURL)); |
- } |
- |
- DISALLOW_COPY_AND_ASSIGN(WebUIBrowserAsyncTest); |
-}; |
- |
-// Test that assertions fail immediately after assertion fails (no testContinues |
-// message). (Sync version). |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestSyncOkTestFail) { |
- ASSERT_FALSE(RunJavascriptTest("testFailsAssert")); |
-} |
- |
-// Test that assertions fail immediately after assertion fails (no testContinues |
-// message). (Async version). |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncFailsAssert) { |
- EXPECT_CALL(message_handler_, HandleTestFails(::testing::_)); |
- ASSERT_FALSE(RunJavascriptAsyncTest( |
- "startAsyncTest", new base::StringValue("testFailsAssert"))); |
-} |
- |
-// Test that expectations continue the function, but fail the test. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncFailsExpect) { |
- ::testing::InSequence s; |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestFails(::testing::_)); |
- ASSERT_FALSE(RunJavascriptAsyncTest( |
- "startAsyncTest", new base::StringValue("testFailsExpect"))); |
-} |
- |
-// Test that test continues and passes. (Sync version). |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestSyncPasses) { |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- ASSERT_TRUE(RunJavascriptTest("testPasses")); |
-} |
- |
-// Test that test continues and passes. (Async version). |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncPasses) { |
- ::testing::InSequence s; |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestPasses(::testing::_)) |
- .WillOnce(::testing::InvokeWithoutArgs( |
- this, &WebUIBrowserAsyncTest::TestDone)); |
- ASSERT_TRUE(RunJavascriptAsyncTest( |
- "startAsyncTest", new base::StringValue("testPasses"))); |
-} |
- |
-// Test that two tests pass. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncPassPass) { |
- ::testing::InSequence s; |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestPasses(::testing::_)) |
- .WillOnce(::testing::InvokeWithoutArgs( |
- this, &WebUIBrowserAsyncTest::RunTestPasses)); |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestPasses(::testing::_)) |
- .WillOnce(::testing::InvokeWithoutArgs( |
- this, &WebUIBrowserAsyncTest::TestDone)); |
- ASSERT_TRUE(RunJavascriptAsyncTest( |
- "startAsyncTest", new base::StringValue("testPasses"))); |
-} |
- |
-// Test that first test passes; second fails. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncPassThenFail) { |
- ::testing::InSequence s; |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestPasses(::testing::_)) |
- .WillOnce(::testing::InvokeWithoutArgs( |
- this, &WebUIBrowserAsyncTest::RunTestFailsAssert)); |
- EXPECT_CALL(message_handler_, HandleTestFails(::testing::_)); |
- ASSERT_FALSE(RunJavascriptAsyncTest( |
- "startAsyncTest", new base::StringValue("testPasses"))); |
-} |
- |
-// Test that testDone() with failure first then sync pass still fails. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestAsyncDoneFailFirstSyncPass) { |
- ::testing::InSequence s; |
- EXPECT_CALL(message_handler_, HandleTestContinues(::testing::_)); |
- EXPECT_CALL(message_handler_, HandleTestFails(::testing::_)); |
- |
- // Call runAsync directly instead of deferring through startAsyncTest. It will |
- // call testDone() on failure, then return. |
- ASSERT_FALSE(RunJavascriptAsyncTest( |
- "runAsync", new base::StringValue("testAsyncDoneFailFirstSyncPass"))); |
-} |
- |
-// Test that calling testDone during RunJavascriptAsyncTest still completes |
-// when waiting for async result. This is similar to the previous test, but call |
-// testDone directly and expect pass result. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPassesAsync) { |
- ASSERT_TRUE(RunJavascriptAsyncTest("testDone")); |
-} |
- |
-// Test that calling testDone during RunJavascriptTest still completes when |
-// waiting for async result. |
-IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPasses) { |
- ASSERT_TRUE(RunJavascriptTest("testDone")); |
-} |