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

Unified Diff: chrome/browser/ui/webui/options/clear_browser_data_browsertest.cc

Issue 275483005: Fix initial focus, and the way elements are disabled on the 'Clear browsing data' dialog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed OR condition, added test. Created 6 years, 7 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/browser/ui/webui/options/clear_browser_data_browsertest.cc
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_browsertest.cc b/chrome/browser/ui/webui/options/clear_browser_data_browsertest.cc
index ff33e276047db74945f886a03d6b950d3c484759..865e6741ca41233737802b1b9edbe8fa9d29eb3e 100644
--- a/chrome/browser/ui/webui/options/clear_browser_data_browsertest.cc
+++ b/chrome/browser/ui/webui/options/clear_browser_data_browsertest.cc
@@ -2,7 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/prefs/pref_service.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/webui/options/options_ui_browsertest.h"
#include "chrome/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
@@ -26,6 +29,16 @@ class ClearBrowserDataBrowserTest : public OptionsUIBrowserTest {
return element_enabled;
}
+ bool IsElementInFocus(const std::string& selector) {
+ bool element_in_focus = false;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
+ GetSettingsFrame(),
+ "window.domAutomationController.send(document.querySelector('" +
+ selector + "') == document.activeElement);",
+ &element_in_focus));
+ return element_in_focus;
+ }
+
private:
void GetElementEnabledState(
const std::string& selector,
@@ -40,12 +53,15 @@ class ClearBrowserDataBrowserTest : public OptionsUIBrowserTest {
IN_PROC_BROWSER_TEST_F(ClearBrowserDataBrowserTest,
CommitButtonDisabledWhileDeletionInProgress) {
+ const char kTimePeriodSelectorId[] = "#clear-browser-data-time-period";
const char kCommitButtonId[] = "#clear-browser-data-commit";
BrowsingDataRemoverCompletionInhibitor completion_inhibitor;
// Navigate to the Clear Browsing Data dialog to ensure that the commit button
// is initially enabled, usable, and gets disabled after having been pressed.
+ // Furthermore, verify that the time period combo-box gets the initial focus.
NavigateToSettingsSubpage(chrome::kClearBrowserDataSubPage);
+ EXPECT_TRUE(IsElementInFocus(kTimePeriodSelectorId));
ASSERT_NO_FATAL_FAILURE(ClickElement(kCommitButtonId));
EXPECT_FALSE(IsElementEnabled(kCommitButtonId));
@@ -63,4 +79,33 @@ IN_PROC_BROWSER_TEST_F(ClearBrowserDataBrowserTest,
EXPECT_TRUE(IsElementEnabled(kCommitButtonId));
}
+IN_PROC_BROWSER_TEST_F(ClearBrowserDataBrowserTest,
+ CommitButtonDisabledWhenNoDataTypesSelected) {
+ const char kCommitButtonId[] = "#clear-browser-data-commit";
+ const char* kDataTypes[] = {"browser.clear_data.browsing_history",
+ "browser.clear_data.download_history",
+ "browser.clear_data.cache",
+ "browser.clear_data.cookies",
+ "browser.clear_data.passwords",
+ "browser.clear_data.form_data",
+ "browser.clear_data.hosted_apps_data",
+ "browser.clear_data.content_licenses"};
+
+ // Navigate to the Clear Browsing Data dialog to ensure that the commit button
+ // is disabled if clearing is not requested for any of the data types.
+ PrefService* prefs = browser()->profile()->GetPrefs();
+ for (size_t i = 0; i < arraysize(kDataTypes); ++i)
Dan Beam 2014/05/30 21:11:07 nit: curlies
engedy 2014/05/31 14:25:56 Done.
+ prefs->SetBoolean(kDataTypes[i], false);
Dan Beam 2014/05/30 21:11:07 nit: \n
engedy 2014/05/31 14:25:56 Done.
+ NavigateToSettingsSubpage(chrome::kClearBrowserDataSubPage);
+ EXPECT_FALSE(IsElementEnabled(kCommitButtonId));
+
+ // However, expect the commit button to be re-enabled if any of the data types
+ // gets selected to be cleared.
+ for (size_t i = 0; i < arraysize(kDataTypes); ++i) {
+ prefs->SetBoolean(kDataTypes[i], true);
+ EXPECT_TRUE(IsElementEnabled(kCommitButtonId));
+ prefs->SetBoolean(kDataTypes[i], false);
+ }
+}
+
} // namespace options

Powered by Google App Engine
This is Rietveld 408576698