blob: a112634b69d96f276abfe203bb3a56fc1aa14568 [file] [log] [blame]
// Copyright (c) 2013 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.
#include "content/browser/renderer_host/render_widget_host_view_guest.h"
#include "base/basictypes.h"
#include "base/message_loop/message_loop.h"
#include "content/browser/renderer_host/render_widget_host_delegate.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/browser/renderer_host/test_render_view_host.h"
#include "content/common/view_messages.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/test/mock_render_process_host.h"
#include "content/public/test/test_browser_context.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate {
public:
MockRenderWidgetHostDelegate() {}
virtual ~MockRenderWidgetHostDelegate() {}
};
class RenderWidgetHostViewGuestTest : public testing::Test {
public:
RenderWidgetHostViewGuestTest() {}
virtual void SetUp() {
browser_context_.reset(new TestBrowserContext);
MockRenderProcessHost* process_host =
new MockRenderProcessHost(browser_context_.get());
widget_host_ = new RenderWidgetHostImpl(
&delegate_, process_host, MSG_ROUTING_NONE, false);
view_ = new RenderWidgetHostViewGuest(
widget_host_, NULL, new TestRenderWidgetHostView(widget_host_));
}
virtual void TearDown() {
if (view_)
view_->Destroy();
delete widget_host_;
browser_context_.reset();
message_loop_.DeleteSoon(FROM_HERE, browser_context_.release());
message_loop_.RunUntilIdle();
}
protected:
base::MessageLoopForUI message_loop_;
scoped_ptr<BrowserContext> browser_context_;
MockRenderWidgetHostDelegate delegate_;
// Tests should set these to NULL if they've already triggered their
// destruction.
RenderWidgetHostImpl* widget_host_;
RenderWidgetHostViewGuest* view_;
private:
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewGuestTest);
};
} // namespace
TEST_F(RenderWidgetHostViewGuestTest, VisibilityTest) {
view_->Show();
ASSERT_TRUE(view_->IsShowing());
view_->Hide();
ASSERT_FALSE(view_->IsShowing());
view_->WasShown();
ASSERT_TRUE(view_->IsShowing());
view_->WasHidden();
ASSERT_FALSE(view_->IsShowing());
}
} // namespace content