Commit 81b24add authored by Jeevan Shikaram's avatar Jeevan Shikaram Committed by Commit Bot

[App Management] Add new app permission view subpage.

This CL adds a new app permission view settings subpage to display
the different permission views.

Bug: 919531
Change-Id: I85896670dd3ca9d8e9514d337265cbf73b26e181
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1772873
Commit-Queue: Jeevan Shikaram <jshikaram@chromium.org>
Reviewed-by: default avatarcalamity <calamity@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692057}
parent d800fa5b
......@@ -10,13 +10,24 @@ js_type_check("closure_compile") {
":api_listener",
":app_item",
":app_management_page",
":app_permission_view",
":arc_permission_view",
":browser_proxy",
":chrome_app_permission_view",
":constants",
":dom_switch",
":fake_page_handler",
":main_view",
":permission_item",
":permission_toggle",
":permission_view_header",
":pin_to_shelf_item",
":pwa_permission_view",
":reducers",
":router",
":store",
":store_client",
":toggle_row",
":types",
":util",
]
......@@ -51,11 +62,33 @@ js_library("app_management_page") {
":actions",
":browser_proxy",
":main_view",
":router",
":store",
":store_client",
]
}
js_library("app_permission_view") {
deps = [
":arc_permission_view",
":chrome_app_permission_view",
":dom_switch",
":pwa_permission_view",
":store_client",
]
}
js_library("arc_permission_view") {
deps = [
":constants",
":fake_page_handler",
":permission_item",
":permission_view_header",
":pin_to_shelf_item",
":store_client",
]
}
js_library("browser_proxy") {
deps = [
":fake_page_handler",
......@@ -64,9 +97,20 @@ js_library("browser_proxy") {
]
}
js_library("chrome_app_permission_view") {
deps = [
":fake_page_handler",
":pin_to_shelf_item",
":store_client",
]
}
js_library("constants") {
}
js_library("dom_switch") {
}
js_library("fake_page_handler") {
deps = [
":constants",
......@@ -87,6 +131,46 @@ js_library("main_view") {
]
}
js_library("permission_item") {
deps = [
":fake_page_handler",
":permission_toggle",
":store_client",
":util",
]
}
js_library("permission_toggle") {
deps = [
":util",
]
}
js_library("permission_view_header") {
deps = [
":browser_proxy",
":store_client",
]
}
js_library("pin_to_shelf_item") {
deps = [
":browser_proxy",
":toggle_row",
":types",
]
}
js_library("pwa_permission_view") {
deps = [
":constants",
":fake_page_handler",
":permission_item",
":pin_to_shelf_item",
":store_client",
]
}
js_library("reducers") {
deps = [
":types",
......@@ -95,6 +179,14 @@ js_library("reducers") {
]
}
js_library("router") {
deps = [
":actions",
":constants",
":store_client",
]
}
js_library("store") {
deps = [
":reducers",
......@@ -114,6 +206,13 @@ js_library("store_client") {
]
}
js_library("toggle_row") {
deps = [
":types",
"//ui/webui/resources/cr_elements/cr_toggle:cr_toggle",
]
}
js_library("types") {
deps = [
"//chrome/browser/ui/webui/app_management:mojo_bindings_js_library_for_compile",
......
......@@ -3,6 +3,7 @@
<link rel="import" href="actions.html">
<link rel="import" href="browser_proxy.html">
<link rel="import" href="main_view.html">
<link rel="import" href="router.html">
<link rel="import" href="store_client.html">
<link rel="import" href="store.html">
<link rel="import" href="../../../settings_shared_css.html">
......@@ -15,15 +16,10 @@
<template>
<style include="settings-shared"></style>
<div id="main-container">
<!-- TODO: enable dom-switch after main-view is working -->
<!-- <app-management-dom-switch id="view-selector"
route="[[selectRouteId_(currentPage_, searchTerm_)]]">
<template> -->
<app-management-main-view route-id="main-view">
</app-management-main-view>
<!-- </template>
</app-management-dom-switch> -->
<app-management-main-view>
</app-management-main-view>
</div>
<app-management-router></app-management-router>
</template>
<script src="app_management_page.js"></script>
</dom-module>
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="dom_switch.html">
<link rel="import" href="pwa_permission_view.html">
<link rel="import" href="arc_permission_view.html">
<link rel="import" href="chrome_app_permission_view.html">
<link rel="import" href="../../../settings_shared_css.html">
<dom-module id="app-management-app-permission-view">
<template>
<style include="settings-shared">
</style>
<app-management-dom-switch id="view-selector"
route="[[getSelectedRouteId_(app_)]]">
<template>
<app-management-pwa-permission-view route-id="pwa-permission-view">
</app-management-pwa-permission-view>
<app-management-arc-permission-view route-id="arc-permission-view">
</app-management-arc-permission-view>
<app-management-chrome-app-permission-view
route-id="chrome-app-permission-view">
</app-management-chrome-app-permission-view>
</template>
</app-management-dom-switch>
</template>
<script src="app_permission_view.js"></script>
</dom-module>
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Polymer({
// TODO(crbug.com/999016): change to app-management-app-detail-view.
is: 'app-management-app-permission-view',
behaviors: [
app_management.StoreClient,
],
properties: {
/**
* @type {App}
* @private
*/
app_: Object,
},
attached: function() {
if (!this.app_) {
const appId = settings.getQueryParameters().get('id');
// TODO(crbug.com/999443): move this changePage call to router.js
this.dispatch(app_management.actions.changePage(PageType.DETAIL, appId));
}
this.watch('app_', state => app_management.util.getSelectedApp(state));
this.watch('currentPage_', state => state.currentPage);
this.updateFromStore();
},
/**
* @private
*/
getSelectedRouteId_: function(app) {
if (!app) {
return;
}
const selectedAppType = app.type;
switch (selectedAppType) {
case (AppType.kWeb):
return 'pwa-permission-view';
case (AppType.kExtension):
return 'chrome-app-permission-view';
case (AppType.kArc):
return 'arc-permission-view';
default:
assertNotReached();
}
},
});
......@@ -2,7 +2,6 @@
<link rel="import" href="browser_proxy.html">
<link rel="import" href="icons.html">
<link rel="import" href="metadata_view.html">
<link rel="import" href="permission_item.html">
<link rel="import" href="permission_view_header.html">
<link rel="import" href="shared_style.html">
......@@ -16,10 +15,7 @@
<style include="app-management-shared-css">
</style>
<app-management-permission-view-header>
</app-management-permission-view-header>
<div class="permission-list card-container">
<div class="permission-list">
<app-management-pin-to-shelf-item
id="pin-to-shelf-setting"
class="permission-card-row separated-row header-text"
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Polymer({
// TODO(crbug.com/999016): change to app-management-arc-detail-view.
is: 'app-management-arc-permission-view',
behaviors: [
......
......@@ -29,9 +29,7 @@
}
</style>
<app-management-permission-view-header>
</app-management-permission-view-header>
<div class="card-container">
<div>
<div id="app-description" class="permission-card-row secondary-text">
[[app_.description]]
</div>
......@@ -73,19 +71,21 @@
replaced, but in the mean time it might be necessary to change the
text of the button depending on whether or not it is a hosted
app. -->
<!-- TODO:(crbug.com/958269) Change behaviour of "more settings"
based on the app. -->
<div id="more-settings"
class="subpermission-row separated-row clickable"
on-click="onClickExtensionsSettingsButton_"
hidden$="[[app_.hideMoreSettings]]">
<div class="header-text">$i18n{moreSettings}</div>
<!-- TODO:(crbug.com/958269) Change behaviour of "more settings"
based on the app. -->
</div>
</div>
<div id="more-settings"
class="permission-card-row separated-row header-text clickable"
on-click="onClickExtensionsSettingsButton_">
<div class="header-text">$i18n{moreSettings}</div>
<div class="permission-row-controls">
<cr-icon-button class="native-settings-icon icon-external"
tabindex="0">
</cr-icon-button>
</div>
</div>
</div>
</div>
</template>
<script src="chrome_app_permission_view.js"></script>
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Polymer({
// TODO(crbug.com/999016): change to app-management-chrome-app-detail-view.
is: 'app-management-chrome-app-permission-view',
behaviors: [
......
......@@ -30,6 +30,7 @@
* this.$['view-selector'].route = 'view-two';
*/
// TODO(crbug.com/992795) Merge with cr-view-manager.
Polymer({
is: 'app-management-dom-switch',
......@@ -91,6 +92,12 @@ Polymer({
for (const child of children) {
this.children_[child.getAttribute('route-id')] = child;
}
if (this.route) {
// TODO(crbug.com/999523): Add test coverage for this case.
// If attached is called after the route has been set.
this.onRouteChanged_(this.route);
}
},
/**
......
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="browser_proxy.html">
<link rel="import" href="metadata_view.html">
<link rel="import" href="permission_item.html">
<link rel="import" href="permission_view_header.html">
<link rel="import" href="shared_style.html">
<link rel="import" href="store_client.html">
<link rel="import" href="pin_to_shelf_item.html">
......@@ -14,11 +12,7 @@
<template>
<style include="app-management-shared-css">
</style>
<app-management-permission-view-header>
</app-management-permission-view-header>
<div class="permission-list card-container">
<div class="permission-list">
<app-management-pin-to-shelf-item
id="pin-to-shelf-setting"
class="permission-card-row separated-row header-text"
......@@ -48,15 +42,16 @@
permission-label="$i18n{microphone}"
permission-type="CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC">
</app-management-permission-item>
<div class="subpermission-row separated-row clickable"
on-click="onClickSiteSettingsButton_">
<div class="header-text">$i18n{moreSettings}</div>
<div class="permission-row-controls">
<cr-icon-button class="native-settings-icon icon-external"
tabindex="0">
</cr-icon-button>
</div>
</div>
</div>
</div>
<div id="more-settings"
class="permission-card-row separated-row header-text clickable"
on-click="onClickSiteSettingsButton_">
<div class="header-text">$i18n{moreSettings}</div>
<div class="permission-row-controls">
<cr-icon-button class="native-settings-icon icon-external"
tabindex="0">
</cr-icon-button>
</div>
</div>
</div>
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Polymer({
// TODO(crbug.com/999016): change to app-management-pwa-detail-view.
is: 'app-management-pwa-permission-view',
behaviors: [
......
......@@ -3,15 +3,9 @@
<link rel="import" href="actions.html">
<link rel="import" href="store_client.html">
<link rel="import" href="constants.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-location/iron-location.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-location/iron-query-params.html">
<dom-module id="app-management-router">
<template>
<iron-location id="iron-location" query="{{urlQuery_}}" path="{{path_}}">
</iron-location>
<iron-query-params params-string="{{query_}}"
params-object="{{queryParams_}}"></iron-query-params>
</template>
<script src="router.js"></script>
</dom-module>
......@@ -8,155 +8,35 @@ Polymer({
behaviors: [
app_management.StoreClient,
],
//TODO (crbug.com/999443): Watch URL and update state.
properties: {
/** @private {string} */
path_: String,
/** @private {Object} */
queryParams_: Object,
/** @private {string} */
query_: {
type: String,
observer: 'onQueryChanged_',
},
/** @private {string} */
urlQuery_: {
type: String,
observer: 'onUrlQueryChanged_',
},
/** @private */
searchTerm_: {
type: String,
value: '',
},
/** @private {PageType} */
currentPageType_: {
type: Number,
},
/** @private {?string} */
selectedAppId_: {
type: String,
currentPage_: {
type: Object,
observer: 'onCurrentPageChanged_',
},
},
urlParsed_: false,
observers: [
'onUrlChanged_(path_, queryParams_)',
'onStateChanged_(currentPageType_, selectedAppId_, searchTerm_)',
],
attached: function() {
this.watch('currentPageType_', (state) => {
return state.currentPage.pageType;
});
this.watch('selectedAppId_', (state) => {
return state.currentPage.selectedAppId;
});
this.watch('searchTerm_', (state) => {
return state.search.term;
this.watch('currentPage_', state => {
return state.currentPage;
});
this.updateFromStore();
},
/**
* @param {?string} current Current value of the query.
* @param {?string} previous Previous value of the query.
* @private
*/
onQueryChanged_: function(current, previous) {
if (previous !== undefined) {
this.urlQuery_ = this.query_;
}
},
/** @private */
onUrlQueryChanged_: function() {
this.query_ = this.urlQuery_;
},
/** @private */
onStateChanged_: function() {
if (!this.urlParsed_) {
return;
onCurrentPageChanged_: function() {
const pageType = this.currentPage_.pageType;
const appId = this.currentPage_.selectedAppId;
switch(pageType) {
case PageType.DETAIL:
const params = new URLSearchParams;
params.append('id', appId);
settings.navigateTo(settings.routes.APP_MANAGEMENT_DETAIL, params);
return;
case PageType.MAIN:
settings.navigateTo(settings.routes.APP_MANAGEMENT);
return;
default:
assertNotReached();
}
this.debounce('publishUrl', this.publishUrl_);
},
/** @private */
publishUrl_: function() {
// Disable pushing urls into the history stack, so that we only push one
// state.
this.$['iron-location'].dwellTime = Infinity;
this.publishQueryParams_();
// Re-enable pushing urls into the history stack.
this.$['iron-location'].dwellTime = 0;
this.publishPath_();
},
/** @private */
publishQueryParams_: function() {
const newQueryParams = Object.assign({}, this.queryParams_);
newQueryParams.q = this.searchTerm_ || undefined;
newQueryParams.id = this.selectedAppId_ || undefined;
// Can't update |this.queryParams_| every time since assigning a new object
// to it triggers a state change which causes the URL to change, which
// recurses into a loop. JSON.stringify is used here to compare objects as
// it is always going to be a key value (string) pair and will serialize
// correctly.
if (JSON.stringify(newQueryParams) !== JSON.stringify(this.queryParams_)) {
this.queryParams_ = newQueryParams;
}
},
/** @private */
publishPath_: function() {
let path = '';
if (this.currentPageType_ === PageType.DETAIL) {
path = 'detail';
} else if (this.currentPageType_ === PageType.NOTIFICATIONS) {
path = 'notifications';
}
this.path_ = '/' + path;
},
/** @private */
onUrlChanged_: function() {
this.debounce('parseUrl', this.parseUrl_);
},
/** @private */
parseUrl_: function() {
const newId = this.queryParams_.id;
const searchTerm = this.queryParams_.q;
const pageFromUrl = this.path_.substr(1).split('/')[0];
let newPage = PageType.MAIN;
if (pageFromUrl === 'detail') {
newPage = PageType.DETAIL;
} else if (pageFromUrl === 'notifications') {
newPage = PageType.NOTIFICATIONS;
} else {
newPage = PageType.MAIN;
}
if (newPage === PageType.DETAIL) {
this.dispatch(app_management.actions.changePage(PageType.DETAIL, newId));
} else {
this.dispatch(app_management.actions.changePage(newPage));
}
if (searchTerm) {
this.dispatch(app_management.actions.setSearchTerm(searchTerm));
}
this.urlParsed_ = true;
},
}
});
......@@ -2,6 +2,7 @@
<link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
<link rel="import" href="app_management_page/app_management_page.html">
<link rel="import" href="app_management_page/app_permission_view.html">
<link rel="import" href="../../route.html">
<link rel="import" href="../../settings_shared_css.html">
......@@ -24,6 +25,14 @@
</settings-app-management-page>
</settings-subpage>
</template>
<template is="dom-if" route-path="/app-management/detail" no-search>
<settings-subpage
page-title="[[app_.title]]"
title-icon="[[iconUrlFromId_(app_)]]">
<app-management-app-permission-view>
</app-management-app-permission-view>
</settings-subpage>
</template>
</settings-animated-pages>
</template>
<script src="os_apps_page.js"></script>
......
......@@ -10,6 +10,10 @@
Polymer({
is: 'os-settings-apps-page',
behaviors: [
app_management.StoreClient,
],
properties: {
/** @private {!Map<string, string>} */
focusConfig_: {
......@@ -23,6 +27,24 @@ Polymer({
},
},
/**
* @type {App}
* @private
*/
app_: Object,
},
attached: function() {
this.watch('app_', state => app_management.util.getSelectedApp(state));
},
/**
* @param {App} app
* @return {string}
* @private
*/
iconUrlFromId_: function(app) {
return app_management.util.getAppIcon(app);
},
/** @private */
......
......@@ -103,6 +103,75 @@
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_API_LISTENER_HTML"
file="chromeos/os_apps_page/app_management_page/api_listener.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_DOM_SWITCH_JS"
file="chromeos/os_apps_page/app_management_page/dom_switch.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_DOM_SWITCH_HTML"
file="chromeos/os_apps_page/app_management_page/dom_switch.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PWA_PERMISSION_VIEW_JS"
file="chromeos/os_apps_page/app_management_page/pwa_permission_view.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PWA_PERMISSION_VIEW_HTML"
file="chromeos/os_apps_page/app_management_page/pwa_permission_view.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_ITEM_JS"
file="chromeos/os_apps_page/app_management_page/permission_item.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_ITEM_HTML"
file="chromeos/os_apps_page/app_management_page/permission_item.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_TOGGLE_JS"
file="chromeos/os_apps_page/app_management_page/permission_toggle.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_TOGGLE_HTML"
file="chromeos/os_apps_page/app_management_page/permission_toggle.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_VIEW_HEADER_JS"
file="chromeos/os_apps_page/app_management_page/permission_view_header.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PERMISSION_VIEW_HEADER_HTML"
file="chromeos/os_apps_page/app_management_page/permission_view_header.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PIN_TO_SHELF_ITEM_JS"
file="chromeos/os_apps_page/app_management_page/pin_to_shelf_item.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_PIN_TO_SHELF_ITEM_HTML"
file="chromeos/os_apps_page/app_management_page/pin_to_shelf_item.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_TOGGLE_ROW_JS"
file="chromeos/os_apps_page/app_management_page/toggle_row.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_TOGGLE_ROW_HTML"
file="chromeos/os_apps_page/app_management_page/toggle_row.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_APP_PERMISSION_VIEW_JS"
file="chromeos/os_apps_page/app_management_page/app_permission_view.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_APP_PERMISSION_VIEW_HTML"
file="chromeos/os_apps_page/app_management_page/app_permission_view.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_ARC_PERMISSION_VIEW_JS"
file="chromeos/os_apps_page/app_management_page/arc_permission_view.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_ARC_PERMISSION_VIEW_HTML"
file="chromeos/os_apps_page/app_management_page/arc_permission_view.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_CHROME_APP_PERMISSION_VIEW_JS"
file="chromeos/os_apps_page/app_management_page/chrome_app_permission_view.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_CHROME_APP_PERMISSION_VIEW_HTML"
file="chromeos/os_apps_page/app_management_page/chrome_app_permission_view.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_ROUTER_JS"
file="chromeos/os_apps_page/app_management_page/router.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_ROUTER_HTML"
file="chromeos/os_apps_page/app_management_page/router.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_APP_MANAGEMENT_PAGE_ICONS_HTML"
file="chromeos/os_apps_page/app_management_page/icons.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_MANAGE_A11Y_PAGE_JS"
file="a11y_page/manage_a11y_page.js"
type="chrome_html" />
......
......@@ -526,6 +526,8 @@ cr.define('settings', function() {
loadTimeData.getBoolean('showApps')) {
r.APPS = r.BASIC.createSection('/apps', 'apps');
r.APP_MANAGEMENT = r.APPS.createChild('/app-management');
r.APP_MANAGEMENT_DETAIL =
r.APP_MANAGEMENT.createChild('/app-management/detail');
}
} else {
assert(r.ADVANCED, 'ADVANCED route should exist');
......
......@@ -42,7 +42,8 @@ suite('<app-management-managed-apps>', () => {
await test_util.flushTasks();
});
test('Uninstall button affected by policy', () => {
// TODO(crbug.com/999412): rewrite test.
test.skip('Uninstall button affected by policy', () => {
const uninstallWrapper =
appDetailView.$$('app-management-permission-view-header')
.$$('#uninstall-wrapper');
......
......@@ -20,7 +20,7 @@ GEN('#else');
GEN('#define MAYBE_AllJsTests AllJsTests');
GEN('#endif');
// Generic text fixture for CrOS Polymer Settings elements to be overridden by
// Generic test fixture for CrOS Polymer Settings elements to be overridden by
// individual element tests.
const OSSettingsBrowserTest = class extends PolymerTest {
/** @override */
......@@ -143,12 +143,19 @@ TEST_F('OSSettingsAndroidAppsPageTest', 'DISABLED_AllJsTests', () => {
mocha.run();
});
// Test fixture for the app management settings page.
// eslint-disable-next-line no-var
var OSSettingsAppManagementPageTest = class extends OSSettingsBrowserTest {
// Generic test fixture for CrOS Polymer App Management elements to be
// overridden by individual element tests.
const OSSettingsAppManagementBrowserTest = class extends OSSettingsBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload + 'app_management/app_management_page.html';
return super.browsePreload + 'os_apps_page.html';
}
/** @override */
get featureList() {
return {
enabled: super.featureList.enabled.concat(['features::kAppManagement'])
};
}
/** @override */
......@@ -158,18 +165,29 @@ var OSSettingsAppManagementPageTest = class extends OSSettingsBrowserTest {
BROWSER_SETTINGS_PATH + '../test_store.js',
'app_management/test_util.js',
'app_management/test_store.js',
'app_management/app_management_page_tests.js',
]);
}
/** @override */
get featureList() {
return {enabled: ['features::kAppManagement']};
get runAccessibilityChecks() {
return true;
}
};
// Test fixture for the app management settings page.
// eslint-disable-next-line no-var
var OSSettingsAppManagementPageTest =
class extends OSSettingsAppManagementBrowserTest {
/** @override */
get runAccessibilityChecks() {
return true;
get browsePreload() {
return super.browsePreload + 'app_management/app_management_page.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'app_management/app_management_page_tests.js',
]);
}
};
......@@ -177,6 +195,86 @@ TEST_F('OSSettingsAppManagementPageTest', 'AllJsTests', () => {
mocha.run();
});
// Test fixture for the app management pwa permission view element.
// eslint-disable-next-line no-var
var OSSettingsAppManagementPwaPermissionViewTest =
class extends OSSettingsAppManagementBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload + 'app_management/pwa_permission_view.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'app_management/pwa_permission_view_test.js',
]);
}
};
TEST_F('OSSettingsAppManagementPwaPermissionViewTest', 'AllJsTests', () => {
mocha.run();
});
// Test fixture for the app management arc permission view element.
// eslint-disable-next-line no-var
var OSSettingsAppManagementArcPermissionViewTest =
class extends OSSettingsAppManagementBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload + 'app_management/arc_permission_view.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'app_management/arc_permission_view_test.js',
]);
}
};
TEST_F('OSSettingsAppManagementArcPermissionViewTest', 'AllJsTests', () => {
mocha.run();
});
// Test fixture for the app management managed app view.
// eslint-disable-next-line no-var
var OSSettingsAppManagementManagedAppTest =
class extends OSSettingsAppManagementBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload + 'app_management/pwa_permission_view.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'app_management/managed_apps_test.js',
]);
}
};
TEST_F('OSSettingsAppManagementManagedAppTest', 'AllJsTests', () => {
mocha.run();
});
// Test fixture for the app management reducers.
// eslint-disable-next-line no-var
var OSSettingsAppManagementReducersTest =
class extends OSSettingsAppManagementBrowserTest {
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'app_management/reducers_test.js',
]);
}
};
TEST_F('OSSettingsAppManagementReducersTest', 'AllJsTests', () => {
mocha.run();
});
// Tests for the Device page.
// eslint-disable-next-line no-var
var OSSettingsBluetoothPageTest = class extends OSSettingsBrowserTest {
......
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