Skip to content

Commit

Permalink
Diagnostics: Enable icon link for routine results
Browse files Browse the repository at this point in the history
- Creates lookup function to map RoutineType to URL
- Displays icon for routines with valid URLs

Screenshot: http://shortn/_cPGygB7QVF

R=michaelcheco@google.com

Bug: 1125150
Test: browser_tests --gtest_filter=DiagnosticsApp*
Change-Id: Icc38d25ae114d99fbcd8c4722cb3a57dc7b0ed73
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2967292
Commit-Queue: Ashley Prasad <ashleydp@google.com>
Reviewed-by: Joon Ahn <joonbug@chromium.org>
Cr-Commit-Position: refs/heads/master@{#893996}
  • Loading branch information
Ashley Prasad authored and Chromium LUCI CQ committed Jun 18, 2021
1 parent 368dacd commit 03f3b61
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,17 @@ export function routineResultEntryTestSuite() {
return badge;
}

/**
* Returns the span wrapping the link icon.
* @return {!HTMLSpanElement}
*/
function getRoutineLinkContainer() {
const routineLinkContainer = /** @type{!HTMLSpanElement} */ (
routineResultEntryElement.$$('.routineLinkContainer'));
assertTrue(!!routineLinkContainer);
return routineLinkContainer;
}

test('ElementRendered', () => {
return initializeRoutineResultEntry().then(() => {
// Verify the element rendered.
Expand Down Expand Up @@ -218,4 +229,30 @@ export function routineResultEntryTestSuite() {
assertEquals(getStatusBadge().badgeType, BadgeType.SUCCESS);
});
});

test('RoutineHasNoLinkTest', () => {
const item = createCompletedStatus(
RoutineType.kBatteryCharge,
/** @type {!RoutineResult} */ ({
simpleResult: StandardRoutineResult.kTestPassed
}));

return initializeEntryWithItem(item).then(() => {
// Span should be hidden
assertFalse(isVisible(getRoutineLinkContainer()));
});
});

test('RoutineHasLinkTest', () => {
const item = createCompletedStatus(
RoutineType.kLanConnectivity,
/** @type {!RoutineResult} */ ({
simpleResult: StandardRoutineResult.kTestPassed
}));

return initializeEntryWithItem(item).then(() => {
// Span should not be hidden
assertTrue(isVisible(getRoutineLinkContainer()));
});
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,25 @@
#routine {
@apply --diagnostics-routine-name-font;
}

.routineLinkContainer {
--iron-icon-width: var(--diagnostics-default-font-size);
--iron-icon-height: var(--diagnostics-default-font-size);
--iron-icon-fill-color: var(--diagnostics-routine-name-color);
vertical-align: text-bottom;
}
</style>

<div class="entryRow">
<text-badge id="status" badge-type="[[badgeType_]]" value="[[badgeText_]]"
aria-labelledby="routine">
</text-badge>
<div id="routine" aria-hidden="true">[[routineType_]]</div>
<div id="routine" aria-hidden="true">
[[routineType_]]
<span class="routineLinkContainer" hidden$="[[!routineLink_]]">
<a href="[[routineLink_]]" aria-labelledby="routine">
<iron-icon icon="cr:open-in-new"></iron-icon>
</a>
</span>
</div>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,34 @@ export function getRoutineType(routineType) {
}
}

/**
* Maps routine to help doc URL
* @param {!RoutineType} routineType
* @return {string} url to help docs
*/
export function lookupLinkForRoutine(routineType) {
let url = '';
// TODO(ashleydp): Get actual routine links.
switch (routineType) {
case RoutineType.kCaptivePortal:
case RoutineType.kDnsLatency:
case RoutineType.kDnsResolution:
case RoutineType.kDnsResolverPresent:
case RoutineType.kGatewayCanBePinged:
case RoutineType.kHasSecureWiFiConnection:
case RoutineType.kHttpFirewall:
case RoutineType.kHttpsFirewall:
case RoutineType.kHttpsLatency:
case RoutineType.kLanConnectivity:
case RoutineType.kSignalStrength:
url = '#'
break;
default:
break;
}
return url;
}

/**
* @param {!RoutineResult} result
* @return {?StandardRoutineResult}
Expand Down Expand Up @@ -110,13 +138,19 @@ Polymer({
computed: 'getRunningRoutineString_(item.routine)',
},

/** @private {!BadgeType} */
/** @protected */
routineLink_: {
type: String,
computed: 'getRoutineLink_(item.routine)',
},

/** @protected {!BadgeType} */
badgeType_: {
type: String,
value: BadgeType.QUEUED,
},

/** @private {string} */
/** @protected {string} */
badgeText_: {
type: String,
value: '',
Expand All @@ -139,6 +173,16 @@ Polymer({
return loadTimeData.getStringF('routineEntryText', getRoutineType(routine));
},

/**
* Get routine's help/info link from lookup function
* @param {!RoutineType} routine
* @return {string}
* @private
*/
getRoutineLink_(routine) {
return lookupLinkForRoutine(routine);
},

/**
* @private
*/
Expand Down

0 comments on commit 03f3b61

Please sign in to comment.