Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: chrome/test/ppapi/ppapi_test.h

Issue 10699045: Fix PPB_MouseLock.LockMouse crash and add tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: changes in response to Vincent's suggestions & fix compilation failure. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/ppapi/ppapi_test.h
diff --git a/chrome/test/ppapi/ppapi_test.h b/chrome/test/ppapi/ppapi_test.h
new file mode 100644
index 0000000000000000000000000000000000000000..d18fcf94134416d65ad9f24e6cdc8ddcbddfcdc2
--- /dev/null
+++ b/chrome/test/ppapi/ppapi_test.h
@@ -0,0 +1,136 @@
+// Copyright (c) 2012 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.
+
+#ifndef CHROME_TEST_PPAPI_PPAPI_TEST_H_
+#define CHROME_TEST_PPAPI_PPAPI_TEST_H_
+#pragma once
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/timer.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+
+namespace content {
+class RenderViewHost;
+}
+
+class PPAPITestBase : public InProcessBrowserTest {
+ public:
+ PPAPITestBase();
+
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+
+ virtual std::string BuildQuery(const std::string& base,
+ const std::string& test_case) = 0;
+
+ // Returns the URL to load for file: tests.
+ GURL GetTestFileUrl(const std::string& test_case);
+ void RunTest(const std::string& test_case);
+ // Run the test and reload. This can test for clean shutdown, including leaked
+ // instance object vars.
+ void RunTestAndReload(const std::string& test_case);
+ void RunTestViaHTTP(const std::string& test_case);
+ void RunTestWithSSLServer(const std::string& test_case);
+ void RunTestWithWebSocketServer(const std::string& test_case);
+ void RunTestIfAudioOutputAvailable(const std::string& test_case);
+ void RunTestViaHTTPIfAudioOutputAvailable(const std::string& test_case);
+ std::string StripPrefixes(const std::string& test_name);
+
+ protected:
+ class TestFinishObserver : public content::NotificationObserver {
+ public:
+ TestFinishObserver(content::RenderViewHost* render_view_host,
+ int timeout_s);
+
+ bool WaitForFinish();
+
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE;
+
+ std::string result() const { return result_; }
+
+ void Reset();
+
+ private:
+ void OnTimeout();
+
+ bool finished_;
+ bool waiting_;
+ int timeout_s_;
+ std::string result_;
+ content::NotificationRegistrar registrar_;
+ base::RepeatingTimer<TestFinishObserver> timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestFinishObserver);
+ };
+
+ // Runs the test for a tab given the tab that's already navigated to the
+ // given URL.
+ void RunTestURL(const GURL& test_url);
+ // Run the given |test_case| on a HTTP test server whose document root is
+ // specified by |document_root|. |extra_params| will be passed as URL
+ // parameters to the test.
+ void RunHTTPTestServer(const FilePath& document_root,
+ const std::string& test_case,
+ const std::string& extra_params);
+ // Return the document root for the HTTP server on which tests will be run.
+ // The result is placed in |document_root|. False is returned upon failure.
+ bool GetHTTPDocumentRoot(FilePath* document_root);
+};
+
+// In-process plugin test runner. See OutOfProcessPPAPITest below for the
+// out-of-process version.
+class PPAPITest : public PPAPITestBase {
+ public:
+ PPAPITest();
+
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+
+ virtual std::string BuildQuery(const std::string& base,
+ const std::string& test_case) OVERRIDE;
+};
+
+// Variant of PPAPITest that runs plugins out-of-process to test proxy
+// codepaths.
+class OutOfProcessPPAPITest : public PPAPITest {
+ public:
+ OutOfProcessPPAPITest();
+
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+};
+
+// NaCl plugin test runner for Newlib runtime.
+class PPAPINaClTest : public PPAPITestBase {
+ public:
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+};
+
+// NaCl plugin test runner for Newlib runtime.
+class PPAPINaClNewlibTest : public PPAPINaClTest {
+ public:
+ virtual std::string BuildQuery(const std::string& base,
+ const std::string& test_case) OVERRIDE;
+};
+
+// NaCl plugin test runner for GNU-libc runtime.
+class PPAPINaClGLibcTest : public PPAPINaClTest {
+ public:
+ virtual std::string BuildQuery(const std::string& base,
+ const std::string& test_case) OVERRIDE;
+};
+
+class PPAPINaClTestDisallowedSockets : public PPAPITestBase {
+ public:
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+
+ virtual std::string BuildQuery(const std::string& base,
+ const std::string& test_case) OVERRIDE;
+};
+
+#endif // CHROME_TEST_PPAPI_PPAPI_TEST_H_

Powered by Google App Engine
This is Rietveld 408576698