Commit 51910456 authored by Roman Arora's avatar Roman Arora Committed by Josip Sokcevic

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/+/3288761Reviewed-by: default avatarTom Lukaszewicz <tluk@chromium.org>
Reviewed-by: default avatarJohn Lee <johntlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819616}
parent fe7d27a5
......@@ -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 {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