Index: trunk/src/content/browser/devtools/renderer_overrides_handler_browsertest.cc |
=================================================================== |
--- trunk/src/content/browser/devtools/renderer_overrides_handler_browsertest.cc (revision 278497) |
+++ trunk/src/content/browser/devtools/renderer_overrides_handler_browsertest.cc (working copy) |
@@ -2,30 +2,37 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "base/base64.h" |
-#include "base/command_line.h" |
+#include "base/basictypes.h" |
#include "base/json/json_reader.h" |
-#include "content/browser/devtools/devtools_protocol.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "content/browser/devtools/renderer_overrides_handler.h" |
#include "content/public/browser/devtools_agent_host.h" |
-#include "content/public/browser/devtools_client_host.h" |
-#include "content/public/browser/devtools_manager.h" |
#include "content/public/browser/web_contents.h" |
-#include "content/public/test/browser_test_utils.h" |
#include "content/public/test/content_browser_test.h" |
+#include "content/public/test/content_browser_test_utils.h" |
#include "content/shell/browser/shell.h" |
-#include "third_party/skia/include/core/SkBitmap.h" |
-#include "ui/compositor/compositor_switches.h" |
-#include "ui/gfx/codec/png_codec.h" |
namespace content { |
-class RendererOverridesHandlerTest : public ContentBrowserTest, |
- public DevToolsClientHost { |
+class RendererOverridesHandlerTest : public ContentBrowserTest { |
protected: |
- void SendCommand(const std::string& method, |
- base::DictionaryValue* params) { |
- EXPECT_TRUE(DevToolsManager::GetInstance()->DispatchOnInspectorBackend(this, |
- DevToolsProtocol::CreateCommand(1, method, params)->Serialize())); |
+ scoped_refptr<DevToolsProtocol::Response> SendCommand( |
+ const std::string& method, |
+ base::DictionaryValue* params) { |
+ scoped_ptr<RendererOverridesHandler> handler(CreateHandler()); |
+ scoped_refptr<DevToolsProtocol::Command> command( |
+ DevToolsProtocol::CreateCommand(1, method, params)); |
+ return handler->HandleCommand(command); |
+ } |
+ |
+ void SendAsyncCommand(const std::string& method, |
+ base::DictionaryValue* params) { |
+ scoped_ptr<RendererOverridesHandler> handler(CreateHandler()); |
+ scoped_refptr<DevToolsProtocol::Command> command( |
+ DevToolsProtocol::CreateCommand(1, method, params)); |
+ scoped_refptr<DevToolsProtocol::Response> response = |
+ handler->HandleCommand(command); |
+ EXPECT_TRUE(response->is_async_promise()); |
base::MessageLoop::current()->Run(); |
} |
@@ -57,40 +64,30 @@ |
scoped_ptr<base::DictionaryValue> result_; |
private: |
- virtual void SetUpOnMainThread() OVERRIDE { |
- DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor( |
- DevToolsAgentHost::GetOrCreateFor( |
- shell()->web_contents()->GetRenderViewHost()).get(), |
- this); |
+ RendererOverridesHandler* CreateHandler() { |
+ RenderViewHost* rvh = shell()->web_contents()->GetRenderViewHost(); |
+ DevToolsAgentHost* agent = DevToolsAgentHost::GetOrCreateFor(rvh).get(); |
+ scoped_ptr<RendererOverridesHandler> handler( |
+ new RendererOverridesHandler(agent)); |
+ handler->SetNotifier(base::Bind( |
+ &RendererOverridesHandlerTest::OnMessageSent, base::Unretained(this))); |
+ return handler.release(); |
} |
- virtual void TearDownOnMainThread() OVERRIDE { |
- DevToolsManager::GetInstance()->ClientHostClosing(this); |
- } |
- |
- virtual void DispatchOnInspectorFrontend( |
- const std::string& message) OVERRIDE { |
+ void OnMessageSent(const std::string& message) { |
scoped_ptr<base::DictionaryValue> root( |
static_cast<base::DictionaryValue*>(base::JSONReader::Read(message))); |
base::DictionaryValue* result; |
- EXPECT_TRUE(root->GetDictionary("result", &result)); |
+ root->GetDictionary("result", &result); |
result_.reset(result->DeepCopy()); |
base::MessageLoop::current()->QuitNow(); |
} |
- |
- virtual void InspectedContentsClosing() OVERRIDE { |
- EXPECT_TRUE(false); |
- } |
- |
- virtual void ReplacedWithAnotherClient() OVERRIDE { |
- EXPECT_TRUE(false); |
- } |
}; |
IN_PROC_BROWSER_TEST_F(RendererOverridesHandlerTest, QueryUsageAndQuota) { |
base::DictionaryValue* params = new base::DictionaryValue(); |
params->SetString("securityOrigin", "http://example.com"); |
- SendCommand("Page.queryUsageAndQuota", params); |
+ SendAsyncCommand("Page.queryUsageAndQuota", params); |
EXPECT_TRUE(HasValue("quota.persistent")); |
EXPECT_TRUE(HasValue("quota.temporary")); |
@@ -101,38 +98,4 @@ |
EXPECT_TRUE(HasListItem("usage.persistent", "id", "filesystem")); |
} |
-class CaptureScreenshotTest : public RendererOverridesHandlerTest { |
- private: |
-#if !defined(OS_ANDROID) |
- virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE { |
- command_line->AppendSwitch(switches::kEnablePixelOutputInTests); |
- } |
-#endif |
-}; |
- |
-// Does not link on Android |
-#if defined(OS_ANDROID) |
-#define MAYBE_CaptureScreenshot DISABLED_CaptureScreenshot |
-#else |
-#define MAYBE_CaptureScreenshot CaptureScreenshot |
-#endif |
-IN_PROC_BROWSER_TEST_F(CaptureScreenshotTest, MAYBE_CaptureScreenshot) { |
- shell()->LoadURL(GURL("about:blank")); |
- EXPECT_TRUE(content::ExecuteScript( |
- shell()->web_contents()->GetRenderViewHost(), |
- "document.body.style.background = '#123456'")); |
- SendCommand("Page.captureScreenshot", new base::DictionaryValue()); |
- std::string base64; |
- EXPECT_TRUE(result_->GetString("data", &base64)); |
- std::string png; |
- EXPECT_TRUE(base::Base64Decode(base64, &png)); |
- SkBitmap bitmap; |
- gfx::PNGCodec::Decode(reinterpret_cast<const unsigned char*>(png.data()), |
- png.size(), &bitmap); |
- SkColor color(bitmap.getColor(0, 0)); |
- EXPECT_EQ(0x12U, SkColorGetR(color)); |
- EXPECT_EQ(0x34U, SkColorGetG(color)); |
- EXPECT_EQ(0x56U, SkColorGetB(color)); |
-} |
- |
} // namespace content |