172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// found in the LICENSE file.
472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h"
672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/test/testing_profile.h"
9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/test_tab_contents.h"
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTabContentsWrapperTestHarness::TabContentsWrapperTestHarness()
1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    : RenderViewHostTestHarness() {
1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTabContentsWrapperTestHarness::~TabContentsWrapperTestHarness() {
1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTestTabContents* TabContentsWrapperTestHarness::contents() {
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return static_cast<TestTabContents*>(contents_wrapper_.get()->tab_contents());
2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
2172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTabContentsWrapper* TabContentsWrapperTestHarness::contents_wrapper() {
2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return contents_wrapper_.get();
2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
2572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid TabContentsWrapperTestHarness::SetContents(TestTabContents* contents) {
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  contents_wrapper_.reset(new TabContentsWrapper(contents));
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
3072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid TabContentsWrapperTestHarness::SetUp() {
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SetContents(CreateTestTabContents());
3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
3372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid TabContentsWrapperTestHarness::TearDown() {
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  contents_wrapper_.reset();
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Make sure that we flush any messages related to TabContents destruction
3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // before we destroy the profile.
3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  MessageLoop::current()->RunAllPending();
4072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Release the profile on the UI thread.
4272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  message_loop_.DeleteSoon(FROM_HERE, profile_.release());
4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  message_loop_.RunAllPending();
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
45