Index: content/browser/web_contents/web_contents_impl_unittest.cc |
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc |
index 8ba2b0522f53ff633709f2e7f39b5d4d57133d65..f1685952b06ee88e70e0a8e111c542552341ebdf 100644 |
--- a/content/browser/web_contents/web_contents_impl_unittest.cc |
+++ b/content/browser/web_contents/web_contents_impl_unittest.cc |
@@ -53,6 +53,7 @@ |
#include "content/test/test_web_contents.h" |
#include "net/test/cert_test_util.h" |
#include "net/test/test_data_directory.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/skia/include/core/SkColor.h" |
#include "url/url_constants.h" |
@@ -3446,4 +3447,28 @@ TEST_F(WebContentsImplTest, ResetJavaScriptDialogOnUserNavigate) { |
contents()->SetJavaScriptDialogManagerForTesting(nullptr); |
} |
+namespace { |
+ |
+class MockWebContentsObserver : public WebContentsObserver { |
+ public: |
+ explicit MockWebContentsObserver(WebContents* web_contents) |
+ : WebContentsObserver(web_contents) {} |
+ MOCK_METHOD2( |
+ WebContentsReplaced, |
+ void(WebContents* old_web_contents, WebContents* new_web_contents)); |
+}; |
+ |
+} // namespace |
+ |
+// Makes sure that when a WebContents is replaced, it notifies its observers. |
+TEST_F(WebContentsImplTest, NotifiesOnReplacement) { |
+ WebContents* other_contents = contents()->Clone(); |
+ |
+ MockWebContentsObserver observer(contents()); |
+ EXPECT_CALL(observer, WebContentsReplaced(contents(), other_contents)); |
+ contents()->OnReplaced(other_contents); |
+ |
+ delete other_contents; |
+} |
+ |
} // namespace content |