Commit 57fbb5f4 authored by Azeem Arshad's avatar Azeem Arshad Committed by Commit Bot

[AndroidSms] Disable setup button when prohibited by policy.

This CL adds an additional check to make sure that the messages setup
button is disabled when the feature is prohibited by policy. This fixes
crashes when a user tries to click the button in this state.

Bug: 953398
Change-Id: Ia27e16ca34ac07e952a9c873d9c3d1f16fac8c39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1573090
Commit-Queue: Azeem Arshad <azeemarshad@chromium.org>
Reviewed-by: default avatarJeremy Klein <jlklein@chromium.org>
Reviewed-by: default avatarTommy Li <tommycli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#652268}
parent c9f86f01
......@@ -88,7 +88,8 @@
<template is="dom-if"
if="[[doesAndroidMessagesRequireSetUp_(pageContentData)]]"
restamp>
<paper-button disabled$="[[!isSuiteOn(pageContentData)]]"
<paper-button disabled$="[[isAndroidMessagesSetupButtonDisabled_(
pageContentData)]]"
on-click="handleAndroidMessagesButtonClick_"
slot="feature-controller">
$i18n{multideviceSetupButton}
......
......@@ -134,4 +134,15 @@ Polymer({
// disabled, regardless if Messages requires further setup.
return !this.pageContentData.isAndroidSmsPairingComplete;
},
/**
* @return {boolean}
* @private
*/
isAndroidMessagesSetupButtonDisabled_: function() {
const messagesFeatureState = this.getFeatureState(
settings.MultiDeviceFeature.MESSAGES);
return !this.isSuiteOn() || messagesFeatureState ===
settings.MultiDeviceFeatureState.PROHIBITED_BY_POLICY;
}
});
......@@ -166,4 +166,31 @@ suite('Multidevice', function() {
return browserProxy.whenCalled('setUpAndroidSms');
});
test(
'AndroidMessages set up button is disabled when prohibited by policy',
function() {
// Verify that setup button is disabled when prohibited by policy.
multideviceSubpage.pageContentData =
Object.assign({}, multideviceSubpage.pageContentData, {
messagesState:
settings.MultiDeviceFeatureState.PROHIBITED_BY_POLICY,
isAndroidSmsPairingComplete: false,
});
Polymer.dom.flush();
let setUpButton =
multideviceSubpage.$$('#messagesItem > [slot=feature-controller]');
assertTrue(!!setUpButton);
assertTrue(setUpButton.tagName.includes('BUTTON'));
assertTrue(setUpButton.disabled);
// Verify that setup button is not disabled when feature is enabled.
setAndroidSmsPairingComplete(false);
setUpButton =
multideviceSubpage.$$('#messagesItem > [slot=feature-controller]');
assertTrue(!!setUpButton);
assertTrue(setUpButton.tagName.includes('BUTTON'));
assertFalse(setUpButton.disabled);
});
});
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