Commit c51eec54 authored by Nnamdi Theodore Johnson-Kanu's avatar Nnamdi Theodore Johnson-Kanu Committed by Commit Bot

[CrOS settings] Add on click event to localized link

Bug: 093185
Change-Id: Ic66508d92a5eb9c0d72c4b21e7517cbabb4563d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2507295
Commit-Queue: Nnamdi Theodore Johnson-kanu <tjohnsonkanu@google.com>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825669}
parent 56000879
......@@ -112,6 +112,7 @@ Polymer({
* @private
*/
onAnchorTagClick_(event) {
this.fire('link-clicked', {event});
// Stop propagation of the event, since it has already been handled by
// opening the link.
event.stopPropagation();
......
......@@ -2,8 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// #import {eventToPromise, flushTasks, waitAfterNextRender} from 'chrome://test/test_util.m.js';
// #import 'chrome://os-settings/chromeos/os_settings.js';
// clang-format on
suite('localized_link', function() {
let localizedStringWithLink;
......@@ -13,6 +17,12 @@ suite('localized_link', function() {
` link-url="${linkUrl}"></settings-localized-link>`;
}
function flushAsync() {
Polymer.dom.flush();
// Use setTimeout to wait for the next macrotask.
return new Promise(resolve => setTimeout(resolve));
}
test('LinkFirst', function() {
document.body.innerHTML =
GetLocalizedStringWithLinkElementHtml(`<a>first link</a>then text`, ``);
......@@ -78,4 +88,22 @@ suite('localized_link', function() {
localizedStringWithLink.$.container.innerHTML,
`No anchor tags in this sentence.`);
});
test('LinkClick', function() {
document.body.innerHTML = GetLocalizedStringWithLinkElementHtml(
`Text with a <a href='#'>link</a>`, ``);
return flushAsync().then(async () => {
const localizedLink =
document.body.querySelector('settings-localized-link');
assertTrue(!!localizedLink);
const anchorTag = localizedLink.$$('a');
assertTrue(!!anchorTag);
const localizedLinkPromise = test_util.eventToPromise(
'link-clicked', localizedLink);
anchorTag.click();
await Promise.all([localizedLinkPromise, test_util.flushTasks()]);
});
});
});
......@@ -54,6 +54,7 @@ var SettingsLocalizedLinkTest = class extends OSSettingsBrowserTest {
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
BROWSER_SETTINGS_PATH + '../test_util.js',
'localized_link_test.js',
]);
}
......
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