blob: 0c27136ec968a7f4933f71b32f5a051e3c10568a [file] [log] [blame]
// Copyright 2014 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 "base/values.h"
#include "extensions/browser/guest_view/test_guest_view_manager.h"
#include "extensions/shell/test/shell_test.h"
#include "ui/gfx/switches.h"
namespace content {
class WebContents;
} // namespace content
namespace extensions {
class TestGuestViewManager;
// Base class for WebView tests in app_shell.
class WebViewAPITest : public AppShellTest {
protected:
WebViewAPITest();
// Launches the app_shell app in |app_location|.
void LaunchApp(const std::string& app_location);
// Runs the test |test_name| in |app_location|. RunTest will launch the app
// and execute the javascript function runTest(test_name) inside the app.
void RunTest(const std::string& test_name, const std::string& app_location);
// Starts/Stops the embedded test server.
void StartTestServer();
void StopTestServer();
content::WebContents* GetEmbedderWebContents();
// Returns the GuestViewManager singleton.
TestGuestViewManager* GetGuestViewManager();
content::WebContents* GetGuestWebContents();
void SendMessageToGuestAndWait(const std::string& message,
const std::string& wait_message);
void SendMessageToEmbedder(const std::string& message);
// content::BrowserTestBase implementation.
virtual void RunTestOnMainThreadLoop() override;
virtual void SetUpCommandLine(base::CommandLine* command_line) override;
virtual void SetUpOnMainThread() override;
virtual void TearDownOnMainThread() override;
content::WebContents* embedder_web_contents_;
TestGuestViewManagerFactory factory_;
base::DictionaryValue test_config_;
private:
content::WebContents* GetFirstAppWindowWebContents();
};
class WebViewDPIAPITest : public WebViewAPITest {
protected:
virtual void SetUp() override;
static float scale() { return 2.0f; }
};
} // namespace extensions