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

Unified Diff: chrome/test/data/webui/cr_elements_browsertest.js

Issue 2017523002: MD WebUI: Add tests for cr-toolbar-search-field (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments Created 4 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/test/data/webui/cr_elements_browsertest.js
diff --git a/chrome/test/data/webui/cr_elements_browsertest.js b/chrome/test/data/webui/cr_elements_browsertest.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0f8abf0bbda8dea7b0facca46c7ba66155bafd
--- /dev/null
+++ b/chrome/test/data/webui/cr_elements_browsertest.js
@@ -0,0 +1,119 @@
+// Copyright 2016 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.
+
+/**
+ * @fileoverview Suite of tests for shared cr elements. Currently:
+ * <cr-toolbar-search-field>.
+ */
+
+/** @const {string} Path to source root. */
+var ROOT_PATH = '../../../../';
+
+// Polymer BrowserTest fixture.
+GEN_INCLUDE(
+ [ROOT_PATH + 'chrome/test/data/webui/polymer_browser_test_base.js']);
+
+/**
+ * Test fixture for cr elements
+ * @constructor
+ * @extends {PolymerTest}
+ */
+function CrElementsBrowserTest() {}
+
+CrElementsBrowserTest.prototype = {
+ __proto__: PolymerTest.prototype,
+ extraLibraries: PolymerTest.getLibraries(ROOT_PATH),
+};
+
+TEST_F('CrElementsBrowserTest', 'CrToolbarSearchFieldTest', function() {
+ suite('cr-toolbar-search-field', function() {
+ /** @type {?CrToolbarSearchFieldElement} */
+ var field;
+ /** @type {?MockSearchFieldDelegate} */
+ var delegate;
+
+ /** @param {string} term */
+ function simulateSearch(term) {
+ field.$.searchInput.bindValue = term;
+ field.onSearchTermSearch_();
+ }
+
+ /**
+ * @constructor
+ * @implements {SearchFieldDelegate}
+ */
+ function MockSearchFieldDelegate() {
+ /** @type {!Array<string>} */
+ this.searches = [];
+ }
+
+ MockSearchFieldDelegate.prototype = {
+ /** @override */
+ onSearchTermSearch: function(term) {
+ this.searches.push(term);
+ }
+ };
+
+ suiteSetup(function() {
+ return PolymerTest.importHtml(
+ 'chrome://resources/cr_elements/cr_toolbar/' +
+ 'cr_toolbar_search_field.html');
+ });
+
+ setup(function() {
+ PolymerTest.clearBody();
+ // Constructing a new delegate resets the list of searches.
+ delegate = new MockSearchFieldDelegate();
+ field = document.createElement('cr-toolbar-search-field');
+ field.setDelegate(delegate);
+ document.body.appendChild(field);
+ });
+
+ teardown(function() {
+ field.remove();
+ field = null;
+ delegate = null;
+ });
+
+ test('opens and closes correctly', function() {
+ assertFalse(field.showingSearch);
+ MockInteractions.tap(field);
+ assertTrue(field.showingSearch);
+ assertEquals(field.$.searchInput, field.root.activeElement);
+
+ MockInteractions.blur(field.$.searchInput);
+ assertFalse(field.showingSearch);
+
+ MockInteractions.tap(field);
+ assertEquals(field.$.searchInput, field.root.activeElement);
+
+ MockInteractions.pressAndReleaseKeyOn(
+ field.$.searchInput, 27, '', 'Escape');
+ assertFalse(field.showingSearch, 'Pressing escape closes field.');
+ assertNotEquals(field.$.searchInput, field.root.activeElement);
+ });
+
+ test('passes searches correctly', function() {
+ MockInteractions.tap(field);
+ simulateSearch('test');
+ assertEquals('test', field.getValue());
+
+ MockInteractions.tap(field.$.clearSearch);
+ assertFalse(field.showingSearch);
+ assertEquals('', field.getValue());
+
+ assertEquals(['test', ''].join(), delegate.searches.join());
+ });
+
+ test('blur does not close field when a search is active', function() {
+ MockInteractions.tap(field);
+ simulateSearch('test');
+ MockInteractions.blur(field.$.searchInput);
+
+ assertTrue(field.showingSearch);
+ });
+ });
+
+ mocha.run();
+});
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | ui/webui/resources/cr_elements/cr_search_field/cr_search_field_behavior.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698