Commit 116f903c authored by Roman Arora's avatar Roman Arora Committed by Josip Sokcevic

Reland "TabSearch: Enable/Disable feedback button based on a config"

This is a reland of 218a19d8afddea116cf66cd2764fa5fb1988716a

Updated TabSearchAppFocusTest that expects submit feedback footer.
Please review agains the Patchset 1 for new changes.

Original change's description:
> TabSearch: Enable/Disable feedback button based on a config
>
> Bug: 1099917
> Change-Id: Ia79387286a56d411dead0018c6a22a36fbc4daac
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/chrome/browser/resources/tab_search/+/3288761
> Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
> Reviewed-by: John Lee <johntlee@chromium.org>

Bug: 1099917
Change-Id: Ibe13fd00d7e00c669b7e675cda1daa6d2470605c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/chrome/browser/resources/tab_search/+/3291234Reviewed-by: default avatarTom Lukaszewicz <tluk@chromium.org>
Reviewed-by: default avatarJohn Lee <johntlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819619}
parent 15fc9926
......@@ -80,8 +80,10 @@
<div id="no-results" hidden="[[filteredOpenTabs_.length]]">
$i18n{noResultsFound}
</div>
<button id="feedback-footer" class="mwb-list-item" on-click="onFeedbackClick_"
on-focus="onFeedbackFocus_">
<iron-icon id="feedback-icon" icon="ts:feedback"></iron-icon>
<div id="feedback-text">$i18n{submitFeedback}</div>
</button>
<template is="dom-if" if="[[feedbackButtonEnabled_]]">
<button id="feedback-footer" class="mwb-list-item" on-click="onFeedbackClick_"
on-focus="onFeedbackFocus_">
<iron-icon id="feedback-icon" icon="ts:feedback"></iron-icon>
<div id="feedback-text">$i18n{submitFeedback}</div>
</button>
</template>
......@@ -88,6 +88,12 @@ export class TabSearchAppElement extends PolymerElement {
],
},
},
/** @private {boolean} */
feedbackButtonEnabled_: {
type: Boolean,
value: () => loadTimeData.getBoolean('submitFeedbackEnabled'),
},
};
}
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {TabSearchAppElement} from 'chrome://tab-search/app.js';
......@@ -25,6 +26,7 @@ suite('TabSearchAppFocusTest', () => {
testProxy.setProfileTabs(sampleData());
TabSearchApiProxyImpl.instance_ = testProxy;
loadTimeData.overrideValues({'submitFeedbackEnabled': true});
tabSearchApp = /** @type {!TabSearchAppElement} */
(document.createElement('tab-search-app'));
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {TabSearchAppElement} from 'chrome://tab-search/app.js';
import {TabSearchApiProxy, TabSearchApiProxyImpl} from 'chrome://tab-search/tab_search_api_proxy.js'
......@@ -37,11 +38,19 @@ suite('TabSearchAppTest', () => {
return tabSearchApp.shadowRoot.querySelectorAll('tab-search-item');
}
async function setupTest(sampleData) {
/**
* @param {tabSearch.mojom.ProfileTabs} sampleData
* @param {Object=} loadTimeOverridenData
*/
async function setupTest(sampleData, loadTimeOverridenData) {
testProxy = new TestTabSearchApiProxy();
testProxy.setProfileTabs(sampleData);
TabSearchApiProxyImpl.instance_ = testProxy;
if (loadTimeOverridenData) {
loadTimeData.overrideValues(loadTimeOverridenData);
}
tabSearchApp = /** @type {!TabSearchAppElement} */
(document.createElement('tab-search-app'));
......@@ -319,8 +328,14 @@ suite('TabSearchAppTest', () => {
assertEquals(1, testProxy.getCallCount('showUI'));
});
test('Click on Sumit Feedback footer triggers action', async () => {
test('Submit feeedback footer disabled by default', async () => {
await setupTest(sampleData());
assertTrue(
tabSearchApp.shadowRoot.querySelector('#feedback-footer') === null);
});
test('Click on Sumit Feedback footer triggers action', async () => {
await setupTest(sampleData(), {'submitFeedbackEnabled': true});
const feedbackButton = /** @type {!HTMLButtonElement} */
(tabSearchApp.shadowRoot.querySelector('#feedback-footer'));
......@@ -357,7 +372,7 @@ suite('TabSearchAppTest', () => {
});
test('Escape key triggers close UI API', async () => {
await setupTest(sampleData());
await setupTest(sampleData(), {'submitFeedbackEnabled': true});
const elements = [
tabSearchApp.shadowRoot.querySelector('#searchField'),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment