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 @@ ...@@ -80,8 +80,10 @@
<div id="no-results" hidden="[[filteredOpenTabs_.length]]"> <div id="no-results" hidden="[[filteredOpenTabs_.length]]">
$i18n{noResultsFound} $i18n{noResultsFound}
</div> </div>
<button id="feedback-footer" class="mwb-list-item" on-click="onFeedbackClick_" <template is="dom-if" if="[[feedbackButtonEnabled_]]">
on-focus="onFeedbackFocus_"> <button id="feedback-footer" class="mwb-list-item" on-click="onFeedbackClick_"
<iron-icon id="feedback-icon" icon="ts:feedback"></iron-icon> on-focus="onFeedbackFocus_">
<div id="feedback-text">$i18n{submitFeedback}</div> <iron-icon id="feedback-icon" icon="ts:feedback"></iron-icon>
</button> <div id="feedback-text">$i18n{submitFeedback}</div>
</button>
</template>
...@@ -88,6 +88,12 @@ export class TabSearchAppElement extends PolymerElement { ...@@ -88,6 +88,12 @@ export class TabSearchAppElement extends PolymerElement {
], ],
}, },
}, },
/** @private {boolean} */
feedbackButtonEnabled_: {
type: Boolean,
value: () => loadTimeData.getBoolean('submitFeedbackEnabled'),
},
}; };
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // 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 {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'; import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {TabSearchAppElement} from 'chrome://tab-search/app.js'; import {TabSearchAppElement} from 'chrome://tab-search/app.js';
...@@ -25,6 +26,7 @@ suite('TabSearchAppFocusTest', () => { ...@@ -25,6 +26,7 @@ suite('TabSearchAppFocusTest', () => {
testProxy.setProfileTabs(sampleData()); testProxy.setProfileTabs(sampleData());
TabSearchApiProxyImpl.instance_ = testProxy; TabSearchApiProxyImpl.instance_ = testProxy;
loadTimeData.overrideValues({'submitFeedbackEnabled': true});
tabSearchApp = /** @type {!TabSearchAppElement} */ tabSearchApp = /** @type {!TabSearchAppElement} */
(document.createElement('tab-search-app')); (document.createElement('tab-search-app'));
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // 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 {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {TabSearchAppElement} from 'chrome://tab-search/app.js'; import {TabSearchAppElement} from 'chrome://tab-search/app.js';
import {TabSearchApiProxy, TabSearchApiProxyImpl} from 'chrome://tab-search/tab_search_api_proxy.js' import {TabSearchApiProxy, TabSearchApiProxyImpl} from 'chrome://tab-search/tab_search_api_proxy.js'
...@@ -37,11 +38,19 @@ suite('TabSearchAppTest', () => { ...@@ -37,11 +38,19 @@ suite('TabSearchAppTest', () => {
return tabSearchApp.shadowRoot.querySelectorAll('tab-search-item'); 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 = new TestTabSearchApiProxy();
testProxy.setProfileTabs(sampleData); testProxy.setProfileTabs(sampleData);
TabSearchApiProxyImpl.instance_ = testProxy; TabSearchApiProxyImpl.instance_ = testProxy;
if (loadTimeOverridenData) {
loadTimeData.overrideValues(loadTimeOverridenData);
}
tabSearchApp = /** @type {!TabSearchAppElement} */ tabSearchApp = /** @type {!TabSearchAppElement} */
(document.createElement('tab-search-app')); (document.createElement('tab-search-app'));
...@@ -319,8 +328,14 @@ suite('TabSearchAppTest', () => { ...@@ -319,8 +328,14 @@ suite('TabSearchAppTest', () => {
assertEquals(1, testProxy.getCallCount('showUI')); 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()); 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} */ const feedbackButton = /** @type {!HTMLButtonElement} */
(tabSearchApp.shadowRoot.querySelector('#feedback-footer')); (tabSearchApp.shadowRoot.querySelector('#feedback-footer'));
...@@ -357,7 +372,7 @@ suite('TabSearchAppTest', () => { ...@@ -357,7 +372,7 @@ suite('TabSearchAppTest', () => {
}); });
test('Escape key triggers close UI API', async () => { test('Escape key triggers close UI API', async () => {
await setupTest(sampleData()); await setupTest(sampleData(), {'submitFeedbackEnabled': true});
const elements = [ const elements = [
tabSearchApp.shadowRoot.querySelector('#searchField'), 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