Требования к тестированию

Тесты GTS ( GtsSafetyCenterTestCases )

Тесты GTS накладывают ограничения на файл конфигурации. См. Обновление файла конфигурации . Устройство освобождается от этих тестов, если оно не поддерживает Safety Center.

Ограничения следующие:

  • Должно быть не менее семи групп источников Safety Center, которые должны оставаться в неизмененном или дефолтном состоянии. Некоторые конкретные поля, такие как заголовки источников, начальное состояние отображения и сводка, иногда поддерживаются накладываемыми строками и могут быть изменены.
  • Для GoogleAppSecuritySources :

    • Не удаляйте и не изменяйте источник безопасности GooglePlayProtect .
    • Вы можете удалить или изменить источник безопасности GoogleAppProtectionService . Если он присутствует:
      • Он должен поддерживать ведение журнала.
      • Если имя пакета не изменилось, в Android 13 оно должно иметь initialDisplayState="hidden" ; в Android 14 и 15 вместо этого должен быть issue-only-safety-source , а deduplicationGroup должен оставаться неизменным; в Android 16 вместо этого он должен быть dynamic-safety-source , иметь initialDisplayState="hidden" и deduplicationGroup должен оставаться неизменным.
      • Если имя пакета изменено, он должен содержать роль "android.app.role.SYSTEM_APP_PROTECTION_SERVICE" ; кроме того, в Android 14 он не должен иметь deduplicationGroup .
  • Для AndroidLockScreenSources :

    • Обязателен summary экземпляр группы, и вы можете его изменить, в том числе с помощью наложения строки.
    • Должен быть хотя бы один источник безопасности.
    • Первый источник безопасности предназначен для управления настройками экрана блокировки, и он не должен иметь возможности выдвигать проблемы или записи, более серьезные, чем SEVERITY_LEVEL_RECOMMENDATION ( maxSeverityLevel="300" или вплоть до желтых записей или предупреждающих карточек). В Android 14 deduplicationGroup должна оставаться неизменной.
    • Другие источники безопасности должны быть источниками, связанными с механизмами биометрической разблокировки, и они должны иметь maxSeverityLevel="0" .
  • В Android 13 не изменяйте GoogleAccountSources , GoogleDeviceFinderSources или AndroidAdvancedSources . В Android 14 вы можете удалить некоторые из новых источников, которые были введены в этих группах (например, резервное копирование и восстановление), вы также можете добавить новые статические источники в группу AndroidAdvancedSources .

  • Для GoogleUpdateSources :

    • Вы можете изменить intentAction для GoogleSecurityUpdates и изменить его с помощью наложения строки.
    • Не изменяйте GooglePlaySystemUpdate .
  • Для AndroidPrivacySources :

    • Вы можете добавлять, удалять или изменять некоторые источники, если они issue-only .
    • Они должны сохранить packageName="com.google.android.permissioncontroller" .
    • Не изменяйте оставшиеся источники AndroidPrivacySources .
  • Для остальных групп источников безопасности (если таковые имеются):

    • Группы не должны иметь summary или statelessIconType , которые приводят к группе SAFETY_SOURCES_GROUP_TYPE_RIGID ( SAFETY_SOURCES_GROUP_TYPE_STATELESS в Android 14).
    • Каждый источник в каждой группе должен быть либо статическим, либо иметь maxSeverityLevel="0" , например, разрешать отправлять серые или зеленые записи, но без проблем.

Тесты CTS ( CtsSafetyCenterTestCases )

Начиная с Android 13, тесты CTS применяются ко всем OEM-производителям, которые поддерживают PermissionController .

Тесты файла конфигурации ( XmlConfigTest )

Эти испытания гарантируют:

  • Проанализированный XML-файл конфигурации соответствует конфигурации, проанализированной и представленной Центром безопасности, и этот анализ прошел успешно.
  • Если в XML-файле присутствует намеренное действие android.settings.PRIVACY_ADVANCED_SETTINGS , то это действие должно быть разрешено.
  • Если в XML-файле присутствует намеренное действие android.settings.PRIVACY_CONTROLS , то это действие должно быть разрешено.

Тесты пользовательского интерфейса ( SafetyCenterActivityTest )

Эти испытания гарантируют:

  • Действие намерения android.intent.action.SAFETY_CENTER разрешается и открывает экран настроек безопасности и конфиденциальности , когда Центр безопасности включен, и экран настроек, когда Центр безопасности отключен.

Тесты API ( SafetyCenterManagerTest )

Целью тестов API SafetyCenterManagerTest является обеспечение правильной работы API Центра безопасности.

Эти испытания гарантируют следующее:

  • SafetyCenterManager.isSafetyCenterEnabled контролируется соответствующим флагом DeviceConfig .
  • При отключении API Центра безопасности не работают.
  • API Центра безопасности можно использовать только при наличии соответствующих разрешений.
  • Данные могут быть предоставлены Центру безопасности только в соответствии с базовой конфигурацией.
  • Когда данные поступают в Центр безопасности, они отображаются соответствующим образом.
  • API соответствуют спецификациям, описанным в разделе Использование исходных API Центра безопасности , например, поведение обновления или повторного сканирования, настройка или очистка данных и сообщение об ошибках.
  • Внутренние API, доступные пользовательскому интерфейсу, работают должным образом, например, данные надлежащим образом объединяются Центром безопасности, и данные можно обновлять.

Неподдерживаемый тест Центра безопасности ( SafetyCenterUnsupportedTest )

Этот тест гарантирует, что Центр безопасности отключен, если устройство его не поддерживает, если поддержка отключена в XML-файле конфигурации фреймворка.

Если устройство поддерживает Safety Center, этот тест не запускается. Если устройство не поддерживает Safety Center, запускаются только этот тест и тесты классов данных.

Этот тест гарантирует следующее:

  • Действие намерения android.intent.action.SAFETY_CENTER открывает экран настроек.
  • SafetyCenterManager.isSafetyCenterEnabled возвращает false .
  • Большинство API Центра безопасности не отвечают при вызове.

Тесты классов данных ( SafetySourceDataTest , SafetySourceIssueTest и т. д.)

Тесты классов данных, такие как SafetySourceDataTest и SafetySourceIssueTest гарантируют, что классы данных, предоставляемые Safety Center, работают так, как задумано, например, SafetySourceData , SafetySourceIssue и другие связанные внутренние классы.

Тесты MTS ( SafetyCenterFunctionalTestCases и другие)

Эти тесты проводятся в основных обновлениях и применяются ко всем OEM-производителям, которые поддерживают PermissionController . Требования, применяемые этими тестами, могут меняться в основных обновлениях.

Тесты API ( SafetyCenterManagerTest )

Эти тесты аналогичны тесту CTS SafetyCenterManagerTest , однако они проверяют требования, которые могут измениться при обновлениях основной версии, например:

  • Проверка фактического содержания данных, возвращаемых внутренними API, доступными пользовательскому интерфейсу.

Тесты пользовательского интерфейса ( SafetyCenterActivityTest , SafetyCenterStatusCardTest , SafetyCenterQsActivityTest и т. д.)

Эти испытания гарантируют:

  • Перенаправление в Центр безопасности с определенными параметрами работает так, как и задумано, например, перенаправление к определенной проблеме. См. Перенаправление в Центр безопасности .
  • Пользовательский интерфейс отображает правильное базовое состояние безопасности.
  • Пользовательский интерфейс позволяет переходить на отдельные экраны.
  • Пользовательский интерфейс позволяет решать проблемы безопасности непосредственно с экрана Центра безопасности, если указано SafetySourceIssue .
  • Пользовательский интерфейс сворачивает несколько карточек предупреждений в один элемент и позволяет развернуть его обратно в несколько карточек предупреждений.
  • Данные обновляются при открытии страницы Центра безопасности для соответствующих источников Центра безопасности.
  • Кнопка повторного сканирования появляется только при определенных обстоятельствах.
  • Нажатие кнопки повторного сканирования извлекает новые данные.
  • Аналогичные тесты проводятся для Центра безопасности. См. Создание пользовательских плиток быстрых настроек для вашего приложения

  • Дополнительные пограничные случаи, такие как состояния ошибок и состояния ожидания.

Многопользовательские тесты ( SafetyCenterMultiUsersTest )

Цель этих тестов — убедиться, что API работает правильно, когда данные предоставляются для нескольких пользователей или профилей. См. Предоставление данных для нескольких пользователей и профилей . Эта настройка достигается с помощью внутренней библиотеки, которая упрощает настройку отдельных пользователей и профилей на устройстве с помощью Bedstead.

Этот тест гарантирует следующее:

  • Данные, принадлежащие пользователю, объединяются с его связанным управляемым профилем, если он существует.
  • Только источники, отмеченные как profile="all_profiles" могут предоставлять данные в управляемом профиле пользователя.
  • Новая запись создается для каждого управляемого профиля, связанного с пользователем.
  • Данные, принадлежащие одному пользователю, не попадают к другому несвязанному с ним пользователю.