OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/common/url_constants.h" | 10 #include "chrome/common/url_constants.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 // Class to synchronize asynchronous javascript activity with the tests. | 101 // Class to synchronize asynchronous javascript activity with the tests. |
102 class AsyncWebUIMessageHandler : public WebUIMessageHandler { | 102 class AsyncWebUIMessageHandler : public WebUIMessageHandler { |
103 public: | 103 public: |
104 AsyncWebUIMessageHandler() {} | 104 AsyncWebUIMessageHandler() {} |
105 | 105 |
106 MOCK_METHOD1(HandleTestContinues, void(const base::ListValue*)); | 106 MOCK_METHOD1(HandleTestContinues, void(const base::ListValue*)); |
107 MOCK_METHOD1(HandleTestFails, void(const base::ListValue*)); | 107 MOCK_METHOD1(HandleTestFails, void(const base::ListValue*)); |
108 MOCK_METHOD1(HandleTestPasses, void(const base::ListValue*)); | 108 MOCK_METHOD1(HandleTestPasses, void(const base::ListValue*)); |
109 | 109 |
110 private: | 110 private: |
111 virtual void RegisterMessages() override { | 111 void RegisterMessages() override { |
112 web_ui()->RegisterMessageCallback("startAsyncTest", | 112 web_ui()->RegisterMessageCallback("startAsyncTest", |
113 base::Bind(&AsyncWebUIMessageHandler::HandleStartAsyncTest, | 113 base::Bind(&AsyncWebUIMessageHandler::HandleStartAsyncTest, |
114 base::Unretained(this))); | 114 base::Unretained(this))); |
115 web_ui()->RegisterMessageCallback("testContinues", | 115 web_ui()->RegisterMessageCallback("testContinues", |
116 base::Bind(&AsyncWebUIMessageHandler::HandleTestContinues, | 116 base::Bind(&AsyncWebUIMessageHandler::HandleTestContinues, |
117 base::Unretained(this))); | 117 base::Unretained(this))); |
118 web_ui()->RegisterMessageCallback("testFails", | 118 web_ui()->RegisterMessageCallback("testFails", |
119 base::Bind(&AsyncWebUIMessageHandler::HandleTestFails, | 119 base::Bind(&AsyncWebUIMessageHandler::HandleTestFails, |
120 base::Unretained(this))); | 120 base::Unretained(this))); |
121 web_ui()->RegisterMessageCallback("testPasses", | 121 web_ui()->RegisterMessageCallback("testPasses", |
122 base::Bind(&AsyncWebUIMessageHandler::HandleTestPasses, | 122 base::Bind(&AsyncWebUIMessageHandler::HandleTestPasses, |
123 base::Unretained(this))); | 123 base::Unretained(this))); |
124 } | 124 } |
125 | 125 |
126 // Starts the test in |list_value|[0] with the runAsync wrapper. | 126 // Starts the test in |list_value|[0] with the runAsync wrapper. |
127 void HandleStartAsyncTest(const base::ListValue* list_value) { | 127 void HandleStartAsyncTest(const base::ListValue* list_value) { |
128 const base::Value* test_name; | 128 const base::Value* test_name; |
129 ASSERT_TRUE(list_value->Get(0, &test_name)); | 129 ASSERT_TRUE(list_value->Get(0, &test_name)); |
130 web_ui()->CallJavascriptFunction("runAsync", *test_name); | 130 web_ui()->CallJavascriptFunction("runAsync", *test_name); |
131 } | 131 } |
132 | 132 |
133 DISALLOW_COPY_AND_ASSIGN(AsyncWebUIMessageHandler); | 133 DISALLOW_COPY_AND_ASSIGN(AsyncWebUIMessageHandler); |
134 }; | 134 }; |
135 | 135 |
136 // Handler for this object. | 136 // Handler for this object. |
137 ::testing::StrictMock<AsyncWebUIMessageHandler> message_handler_; | 137 ::testing::StrictMock<AsyncWebUIMessageHandler> message_handler_; |
138 | 138 |
139 private: | 139 private: |
140 // Provide this object's handler. | 140 // Provide this object's handler. |
141 virtual WebUIMessageHandler* GetMockMessageHandler() override { | 141 WebUIMessageHandler* GetMockMessageHandler() override { |
142 return &message_handler_; | 142 return &message_handler_; |
143 } | 143 } |
144 | 144 |
145 // Set up and browse to kDummyURL for all tests. | 145 // Set up and browse to kDummyURL for all tests. |
146 virtual void SetUpOnMainThread() override { | 146 void SetUpOnMainThread() override { |
147 WebUIBrowserTest::SetUpOnMainThread(); | 147 WebUIBrowserTest::SetUpOnMainThread(); |
148 AddLibrary(base::FilePath(FILE_PATH_LITERAL("async.js"))); | 148 AddLibrary(base::FilePath(FILE_PATH_LITERAL("async.js"))); |
149 ui_test_utils::NavigateToURL(browser(), GURL(kDummyURL)); | 149 ui_test_utils::NavigateToURL(browser(), GURL(kDummyURL)); |
150 } | 150 } |
151 | 151 |
152 DISALLOW_COPY_AND_ASSIGN(WebUIBrowserAsyncTest); | 152 DISALLOW_COPY_AND_ASSIGN(WebUIBrowserAsyncTest); |
153 }; | 153 }; |
154 | 154 |
155 // Test that assertions fail immediately after assertion fails (no testContinues | 155 // Test that assertions fail immediately after assertion fails (no testContinues |
156 // message). (Sync version). | 156 // message). (Sync version). |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 // testDone directly and expect pass result. | 236 // testDone directly and expect pass result. |
237 IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPassesAsync) { | 237 IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPassesAsync) { |
238 ASSERT_TRUE(RunJavascriptAsyncTest("testDone")); | 238 ASSERT_TRUE(RunJavascriptAsyncTest("testDone")); |
239 } | 239 } |
240 | 240 |
241 // Test that calling testDone during RunJavascriptTest still completes when | 241 // Test that calling testDone during RunJavascriptTest still completes when |
242 // waiting for async result. | 242 // waiting for async result. |
243 IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPasses) { | 243 IN_PROC_BROWSER_TEST_F(WebUIBrowserAsyncTest, TestTestDoneEarlyPasses) { |
244 ASSERT_TRUE(RunJavascriptTest("testDone")); | 244 ASSERT_TRUE(RunJavascriptTest("testDone")); |
245 } | 245 } |
OLD | NEW |