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

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

Issue 2913343002: Start removing deprecated Options UI code (Closed)
Patch Set: thestig@ review Created 3 years, 6 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/language_dictionary_interactive_uitest.cc
diff --git a/chrome/browser/ui/webui/options/language_dictionary_interactive_uitest.cc b/chrome/browser/ui/webui/options/language_dictionary_interactive_uitest.cc
deleted file mode 100644
index dbdad4f2af14f11818419285aade8ff83f9ae2d3..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/webui/options/language_dictionary_interactive_uitest.cc
+++ /dev/null
@@ -1,255 +0,0 @@
-// Copyright 2015 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.
-
-#include "base/macros.h"
-#include "base/strings/stringprintf.h"
-#include "base/test/scoped_feature_list.h"
-#include "build/build_config.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/chrome_pages.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/chrome_features.h"
-#include "chrome/common/url_constants.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/interactive_test_utils.h"
-#include "content/public/test/browser_test_utils.h"
-
-namespace {
-
-// This class tests the language dictionary settings.
-// This test is part of the interactive_ui_tests instead of browser_tests
-// because it is necessary to emulate pushing the tab key.
-class LanguageDictionaryWebUITest : public InProcessBrowserTest {
- public:
- LanguageDictionaryWebUITest() {}
-
- // Navigate to the editDictionary page.
- void SetUpOnMainThread() override {
- disable_md_settings_.InitAndDisableFeature(
- features::kMaterialDesignSettings);
- const GURL url = chrome::GetSettingsUrl("editDictionary");
- ui_test_utils::NavigateToURL(browser(), url);
- }
-
- protected:
- const std::string kDictionaryListSelector =
- "#language-dictionary-overlay-word-list";
-
- content::RenderFrameHost* GetActiveFrame() {
- return GetActiveWebContents()->GetFocusedFrame();
- }
-
- content::RenderViewHost* GetRenderViewHost() {
- return GetActiveWebContents()->GetRenderViewHost();
- }
-
- content::WebContents* GetActiveWebContents() {
- return browser()->tab_strip_model()->GetActiveWebContents();
- }
-
- // Add a few test words to the dictionary.
- void SetTestWords(const std::string& list_selector) {
- const std::string script = base::StringPrintf(
- "document.querySelector('%s').setWordList(['cat', 'dog', 'bird']);",
- list_selector.c_str());
- EXPECT_TRUE(content::ExecuteScript(GetActiveFrame(), script));
- // Expected list size is 4: 3 word items + 1 placeholder.
- EXPECT_EQ(4, GetListSize(list_selector));
- }
-
- // Returns the number of items in the list.
- int GetListSize(const std::string& list_selector) {
- const std::string script = base::StringPrintf(
- "domAutomationController.send("
- "document.querySelector('%s').items.length);",
- list_selector.c_str());
- int length = -1;
- EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
- GetActiveFrame(),
- script,
- &length));
- return length;
- }
-
- // Returns true if element contains document.activeElement.
- bool ContainsActiveElement(const std::string& element_selector) {
- const std::string script = base::StringPrintf(
- "domAutomationController.send("
- "document.querySelector('%s').contains(document.activeElement));",
- element_selector.c_str());
- bool result;
- EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
- GetActiveFrame(),
- script,
- &result));
- return result;
- }
-
- // Returns true if list item[|index|] contains document.activeElement.
- bool ListItemContainsActiveElement(const std::string& list_selector,
- int index) {
- EXPECT_GE(index, 0);
- // EXPECT_TRUE will fail if index is out of bounds.
- const std::string script = base::StringPrintf(
- "domAutomationController.send("
- "document.querySelector('%s').items[%d].contains("
- "document.activeElement));",
- list_selector.c_str(),
- index);
- bool result;
- EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
- GetActiveFrame(),
- script,
- &result));
- return result;
- }
-
- // Returns true if list item[|index|] has 'selected' attribute.
- bool ListItemSelected(const std::string& list_selector, int index) {
- EXPECT_GE(index, 0);
- // EXPECT_TRUE will fail if index is out of bounds.
- const std::string script = base::StringPrintf(
- "domAutomationController.send("
- "document.querySelector('%s').items[%d].hasAttribute('selected'));",
- list_selector.c_str(),
- index);
- bool result = false;
- EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
- GetActiveFrame(),
- script,
- &result));
- return result;
- }
-
- // Returns true if list item[|index|] has 'selected' attribute and contains
- // document.activeElement.
- bool ListItemSelectedAndFocused(const std::string& list_selector,
- int index) {
- EXPECT_GE(index, 0);
- return ListItemSelected(list_selector, index) &&
- ListItemContainsActiveElement(list_selector, index);
- }
-
- // Press and release a key in the browser. This will wait for the element on
- // the page to change.
- bool PressKey(ui::KeyboardCode key_code, bool shift) {
- return ui_test_utils::SendKeyPressAndWait(
- browser(),
- key_code,
- false,
- shift,
- false,
- false,
- content::NOTIFICATION_FOCUS_CHANGED_IN_PAGE,
- content::Source<content::RenderViewHost>(GetRenderViewHost()));
- }
-
- void InitializeDomMessageQueue() {
- dom_message_queue_.reset(new content::DOMMessageQueue);
- }
-
- // Wait for a message from the DOM automation controller.
- void WaitForDomMessage(const std::string& message) {
- const std::string expected = "\"" + message + "\"";
- std::string received;
- do {
- ASSERT_TRUE(dom_message_queue_->WaitForMessage(&received));
- } while (received != expected);
- }
-
- // Add a JavaScript event listener to send a DOM automation controller message
- // whenever the |selected| property of the list item changes.
- void ListenForItemSelectedChange(const std::string& list_selector,
- int index) {
- EXPECT_GE(index, 0);
- // EXPECT_TRUE will fail if index is out of bounds.
- const std::string script = base::StringPrintf(
- "document.querySelector('%s').items[%d].addEventListener("
- "'selectedChange', function() {"
- "domAutomationController.setAutomationId(0);"
- "domAutomationController.send('selected=' + this.selected);"
- "});",
- list_selector.c_str(),
- index);
-
- EXPECT_TRUE(content::ExecuteScript(
- GetActiveFrame(),
- script));
- }
-
- private:
- std::unique_ptr<content::DOMMessageQueue> dom_message_queue_;
- base::test::ScopedFeatureList disable_md_settings_;
-
- DISALLOW_COPY_AND_ASSIGN(LanguageDictionaryWebUITest);
-};
-
-} // namespace
-
-// Test InlineEditableItemList keyboard focus behavior in editDictionary
-// overlay.
-// editDictionary overlay doesn't exist on OSX so disable it there.
-#if !defined(OS_MACOSX)
-
-// Crashes on Win 7. http://crbug.com/500609
-#if defined(OS_WIN)
-#define MAYBE_TestListKeyboardFocus DISABLED_TestListKeyboardFocus
-#else
-#define MAYBE_TestListKeyboardFocus TestListKeyboardFocus
-#endif
-
-IN_PROC_BROWSER_TEST_F(LanguageDictionaryWebUITest,
- MAYBE_TestListKeyboardFocus) {
- const std::string list_selector = kDictionaryListSelector;
-
- // Populate the list with some test words.
- SetTestWords(list_selector);
- int placeholder_index = GetListSize(list_selector) - 1;
-
- // Listen for changes of the placeholder item's |selected| property so that
- // test can wait until change has taken place after key press before
- // continuing.
- InitializeDomMessageQueue();
- ListenForItemSelectedChange(list_selector, placeholder_index);
-
- // Press tab to focus the placeholder.
- PressKey(ui::VKEY_TAB, false);
-
- // Wait for placeholder item to become selected.
- WaitForDomMessage("selected=true");
-
- // Verify that the placeholder is selected and has focus.
- EXPECT_TRUE(ListItemSelectedAndFocused(list_selector, placeholder_index));
-
- // Press up arrow to select item above the placeholder.
- PressKey(ui::VKEY_UP, false);
-
- // Wait for placeholder to become unselected.
- WaitForDomMessage("selected=false");
-
- // Verify that the placeholder is no longer selected.
- EXPECT_FALSE(ListItemSelected(list_selector, placeholder_index));
-
- // Verify that the item above the placeholder is selected and has focus.
- EXPECT_TRUE(ListItemSelectedAndFocused(list_selector,
- placeholder_index - 1));
-
- // Press tab to leave the list.
- PressKey(ui::VKEY_TAB, false);
-
- // Verify that focus has left the list.
- EXPECT_FALSE(ContainsActiveElement(list_selector));
-
- // Verify that the item above the placeholder is still selected.
- EXPECT_TRUE(ListItemSelected(list_selector, placeholder_index - 1));
-
- // Press shift+tab to go back to the list.
- PressKey(ui::VKEY_TAB, true);
-
- // Verify that the item above the placeholder is selected and has focus.
- EXPECT_TRUE(ListItemSelectedAndFocused(list_selector,
- placeholder_index - 1));
-}
-#endif // !defined(OS_MACOSX)

Powered by Google App Engine
This is Rietveld 408576698