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

Unified Diff: content/browser/web_contents/web_contents_impl_browsertest.cc

Issue 1408393003: Propagate pageScaleFactor to GuestViews (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add tests Created 5 years, 2 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: content/browser/web_contents/web_contents_impl_browsertest.cc
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
index aa975789fcf7f8f2efc6a826a7aef45ce368c0b0..a5fecaca8eca887c4a1b1f0531713b2366576ac8 100644
--- a/content/browser/web_contents/web_contents_impl_browsertest.cc
+++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -27,6 +27,7 @@
#include "content/shell/browser/shell.h"
#include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "testing/gmock/include/gmock/gmock.h"
namespace content {
@@ -715,6 +716,54 @@ IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, ChangeDisplayMode) {
EXPECT_EQ(base::ASCIIToUTF16("true"), shell()->web_contents()->GetTitle());
}
+// Observer class used to verify that WebContentsObservers are notified
+// when the page scale factor changes.
+// See WebContentsImplBrowserTest.ChangePageScale
Charlie Reis 2015/10/21 21:37:09 nit: End sentence with a period. (Same below on l
Kevin McNee - google account 2015/10/22 20:28:48 Done.
+class MockPageScaleObserver : public WebContentsObserver {
+ public:
+ MockPageScaleObserver(Shell* shell)
+ : WebContentsObserver(shell->web_contents()),
+ got_page_scale_update_(false) {
+ // Once OnPageScaleFactorChanged is called, quit the run loop
+ ON_CALL(*this, OnPageScaleFactorChanged(::testing::_)).WillByDefault(
+ ::testing::InvokeWithoutArgs(
+ this, &MockPageScaleObserver::GotPageScaleUpdate));
+ }
+
+ MOCK_METHOD1(OnPageScaleFactorChanged, void(float page_scale_factor));
+
+ void WaitForPageScaleUpdate() {
+ if (!got_page_scale_update_) {
+ base::RunLoop run_loop;
+ on_page_scale_update_ = run_loop.QuitClosure();
+ run_loop.Run();
+ }
+ }
+
+ private:
+ void GotPageScaleUpdate() {
+ got_page_scale_update_ = true;
+ on_page_scale_update_.Run();
+ }
+
+ base::Closure on_page_scale_update_;
+ bool got_page_scale_update_;
+};
+
+IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, ChangePageScale) {
+ // When the page scale factor is set in the renderer it should send
+ // a notification to the browser so that WebContentsObservers are notified.
Charlie Reis 2015/10/21 21:37:10 nit: Move comment before test declaration and remo
Kevin McNee - google account 2015/10/22 20:28:48 Done.
+
+ NavigateToURL(shell(), GURL(url::kAboutBlankURL));
Charlie Reis 2015/10/21 21:37:09 You should probably use a real URL here. about:bl
Kevin McNee - google account 2015/10/22 20:28:48 Done.
+
+ MockPageScaleObserver observer(shell());
+
+ EXPECT_CALL(observer, OnPageScaleFactorChanged(::testing::FloatEq(1.5)));
+
+ shell()->web_contents()->SetPageScale(1.5);
+ observer.WaitForPageScaleUpdate();
+}
+
IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, NewNamedWindow) {
ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());

Powered by Google App Engine
This is Rietveld 408576698