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

Side by Side Diff: chrome/browser/ui/browser_browsertest.cc

Issue 1323733002: Set display mode for browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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 unified diff | Download patch
« chrome/browser/ui/browser.h ('K') | « chrome/browser/ui/browser.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 3104 matching lines...) Expand 10 before | Expand all | Expand 10 after
3115 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATED, 3115 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATED,
3116 observer.latest_security_style()); 3116 observer.latest_security_style());
3117 EXPECT_EQ(0u, observer.latest_explanations().warning_explanations.size()); 3117 EXPECT_EQ(0u, observer.latest_explanations().warning_explanations.size());
3118 EXPECT_EQ(0u, observer.latest_explanations().broken_explanations.size()); 3118 EXPECT_EQ(0u, observer.latest_explanations().broken_explanations.size());
3119 CheckSecureExplanations(observer.latest_explanations().secure_explanations, 3119 CheckSecureExplanations(observer.latest_explanations().secure_explanations,
3120 VALID_CERTIFICATE); 3120 VALID_CERTIFICATE);
3121 EXPECT_TRUE(observer.latest_explanations().scheme_is_cryptographic); 3121 EXPECT_TRUE(observer.latest_explanations().scheme_is_cryptographic);
3122 EXPECT_FALSE(observer.latest_explanations().displayed_insecure_content); 3122 EXPECT_FALSE(observer.latest_explanations().displayed_insecure_content);
3123 EXPECT_FALSE(observer.latest_explanations().ran_insecure_content); 3123 EXPECT_FALSE(observer.latest_explanations().ran_insecure_content);
3124 } 3124 }
3125
3126 namespace {
3127 class JSBooleanResultGetter {
3128 public:
sky 2015/08/31 15:57:27 run git cl format as your spacing is off.
Mikhail 2015/09/01 08:13:46 Done.
3129 void OnJsExecutionDone(base::Closure callback, const base::Value* value) {
3130 js_result_.reset(value->DeepCopy());
3131 callback.Run();
3132 }
3133 bool GetResult() const {
3134 bool res;
3135 CHECK(js_result_);
3136 CHECK(js_result_->GetAsBoolean(&res));
3137 return res;
3138 }
3139
3140 private:
3141 scoped_ptr<base::Value> js_result_;
3142 };
sky 2015/08/31 15:57:27 DISALLOW...
Mikhail 2015/09/01 08:13:46 Done.
3143
3144 void CheckDisplayModeMQ(
3145 const base::string16& display_mode,
3146 content::WebContents* web_contents) {
3147
sky 2015/08/31 15:57:27 remove newline.
Mikhail 2015/09/01 08:13:46 Done.
3148 base::string16 js_funtcion =
sky 2015/08/31 15:57:27 function
Mikhail 2015/09/01 08:13:46 Done.
3149 ASCIIToUTF16("(function() {return window.matchMedia('(display-mode: ") +
3150 display_mode + ASCIIToUTF16(")').matches;})();");
3151 scoped_ptr<JSBooleanResultGetter> js_result_getter(
sky 2015/08/31 15:57:27 Create on stack.
Mikhail 2015/09/01 08:13:46 Done.
3152 new JSBooleanResultGetter);
3153 // Execute the JS to run the tests, and wait until it has finished.
3154 base::RunLoop run_loop;
3155 web_contents->GetMainFrame()->ExecuteJavaScriptForTests(
3156 js_funtcion,
3157 base::Bind(&JSBooleanResultGetter::OnJsExecutionDone,
3158 base::Unretained(js_result_getter.get()), run_loop.QuitClosure()));
3159 run_loop.Run();
3160 EXPECT_TRUE(js_result_getter->GetResult());
3161 }
3162 } // namespace
3163
3164 IN_PROC_BROWSER_TEST_F(BrowserTest, ChangeDisplayMode) {
3165 CheckDisplayModeMQ(
3166 ASCIIToUTF16("browser"),
3167 browser()->tab_strip_model()->GetActiveWebContents());
3168
3169 Profile* profile = ProfileManager::GetActiveUserProfile();
3170 ui_test_utils::BrowserAddedObserver browser_added_observer;
3171 Browser* app_browser = CreateBrowserForApp("blah", profile);
3172 browser_added_observer.WaitForSingleNewBrowser();
3173 auto app_contents = app_browser->tab_strip_model()->GetActiveWebContents();
3174 CheckDisplayModeMQ(ASCIIToUTF16("standalone"), app_contents);
3175
3176 app_browser->window()->EnterFullscreen(
3177 GURL(), EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION,
3178 false);
3179
3180 // Sync navigation just to make sure IPC has passed (updated
3181 // display mode is delivered to RP).
3182 content::TestNavigationObserver observer(app_contents, 1);
3183 ui_test_utils::NavigateToURL(app_browser, GURL(url::kAboutBlankURL));
3184 observer.Wait();
3185
3186 CheckDisplayModeMQ(ASCIIToUTF16("fullscreen"), app_contents);
3187 }
3188
OLDNEW
« chrome/browser/ui/browser.h ('K') | « chrome/browser/ui/browser.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698