chromium/chrome/test/data/webui/chromeos/settings/os_settings_ui/page_availability_test_helpers.ts

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * @fileoverview
 * Exports common helpers for page availability browser tests.
 */

import {routesMojom} from 'chrome://os-settings/os_settings.js';

export type SectionName = keyof typeof routesMojom.Section;

interface SectionData {
  name: SectionName;
  availableBeforeRevamp: boolean;
  availableAfterRevamp: boolean;
  availableForGuest: boolean;
}

// Keep sorted by order of menu items.
// TODO(b/272139610) Update entries below as Sections get incorporated into
// their respective Revamp Section.
export const SECTION_EXPECTATIONS: SectionData[] = [
  {
    name: 'kNetwork',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kBluetooth',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kMultiDevice',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: false,
  },
  {
    name: 'kPeople',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: false,
  },
  {
    name: 'kKerberos',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kDevice',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kPersonalization',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kSearchAndAssistant',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: true,
  },
  {
    name: 'kPrivacyAndSecurity',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kApps',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kAccessibility',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kSystemPreferences',
    availableBeforeRevamp: false,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
  {
    name: 'kDateAndTime',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: true,
  },
  {
    name: 'kLanguagesAndInput',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: true,
  },
  {
    name: 'kFiles',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: false,
  },
  {
    name: 'kPrinting',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: true,
  },
  {
    name: 'kCrostini',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: true,
  },
  {
    name: 'kReset',
    availableBeforeRevamp: true,
    availableAfterRevamp: false,
    availableForGuest: false,
  },
  {
    name: 'kAboutChromeOs',
    availableBeforeRevamp: true,
    availableAfterRevamp: true,
    availableForGuest: true,
  },
];