Index: content/public/test/content_browser_sanity_checker.h |
diff --git a/content/public/test/content_browser_sanity_checker.h b/content/public/test/content_browser_sanity_checker.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e34646451445ec291f0bee03628d8a015db80988 |
--- /dev/null |
+++ b/content/public/test/content_browser_sanity_checker.h |
@@ -0,0 +1,42 @@ |
+// 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. |
+ |
+#ifndef CONTENT_PUBLIC_TEST_CONTENT_BROWSER_SANITY_CHECKER_H_ |
+#define CONTENT_PUBLIC_TEST_CONTENT_BROWSER_SANITY_CHECKER_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/callback.h" |
+ |
+namespace content { |
+ |
+class WebContents; |
+ |
+// While an instance of this class exists, a bunch of sanity-checks are enabled |
+// to validate the correctness of the browser side of the content layer |
+// implementation. It's good to enable these in both unit tests and browser |
+// tests, as a means of detecting bugs in the implementation of the content api. |
+// |
+// These checks should typically be enabled by the base class of any test |
+// framework that would instantiate a WebContents -- ContentBrowserTest::SetUp, |
+// RenderViewHostTestHarness::SetUp, and so forth. Individual tests won't |
+// typically need to enable them. |
+// |
+// For the nuts and bolts of what the checks enforce, see the implementation. |
+class ContentBrowserSanityChecker { |
+ public: |
+ ContentBrowserSanityChecker(); |
+ ~ContentBrowserSanityChecker(); |
+ |
+ private: |
+ void OnWebContentsCreated(WebContents* web_contents); |
+ |
+ // The callback needs to be cached so that it can be unregistered. |
+ base::Callback<void(WebContents*)> creation_hook_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ContentBrowserSanityChecker); |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_PUBLIC_TEST_CONTENT_BROWSER_SANITY_CHECKER_H_ |