# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name:
    99.3.1. [TC-LCFG-3.1] Localization Configuration Cluster
    Attributes[DUT-Client]

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "DUT reads SupportedLocales attribute from TH"
      PICS: LCFG.C.A0001
      verification: |
          ./chip-tool localizationconfiguration read supported-locales 1 0
          Verify in DUT as client side: verify that DUT reads SupportedLocales attribute from the TH successfully

          [1657111931.771994][5357:5363] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0001 DataVersion: 3168433155
          [1657111931.772105][5357:5363] CHIP:TOO:   SupportedLocales: 8 entries
          [1657111931.772175][5357:5363] CHIP:TOO:     [1]: en-US
          [1657111931.772220][5357:5363] CHIP:TOO:     [2]: de-DE
          [1657111931.772262][5357:5363] CHIP:TOO:     [3]: fr-FR
          [1657111931.772303][5357:5363] CHIP:TOO:     [4]: en-GB
          [1657111931.772344][5357:5363] CHIP:TOO:     [5]: es-ES
          [1657111931.772385][5357:5363] CHIP:TOO:     [6]: zh-CN
          [1657111931.772426][5357:5363] CHIP:TOO:     [7]: it-IT
          [1657111931.772466][5357:5363] CHIP:TOO:     [8]: ja-JP
      disabled: true

    - label: "DUT reads ActiveLocale attribute from the TH"
      PICS: LCFG.C.A0000
      verification: |
          ./chip-tool localizationconfiguration read active-locale 1 0
          Verify in DUT as client side: verify that DUT reads  ActiveLocale attribute from the TH successfully

          [1651564394.281211][8392:8397] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0001 DataVersion: 1726343234
          [1651564394.281289][8392:8397] CHIP:TOO:   ActiveLocale: en-US
      disabled: true
