# 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:
    102.2.1. [TC-LCFG-2.1] Localization Configuration Cluster
    Attributes[DUT-Server]

PICS:
    - LCFG.S

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

tests:
    - label: "TH reads SupportedLocales attribute from DUT"
      PICS: LCFG.S.A0001
      verification: |
          ./chip-tool localizationconfiguration read supported-locales 1 0
          Verify that the entry values in the SupportedLocales attribute are not repeated and the maximum number of elements is 32 and also  that the  maximum length is of 35bytes on TH(chip-tool) log:

          [1661759583.481746][104665:104670] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0001 DataVersion: 3207653748
          [1661759583.482016][104665:104670] CHIP:TOO:   SupportedLocales: 8 entries
          [1661759583.482037][104665:104670] CHIP:TOO:     [1]: en-US
          [1661759583.482045][104665:104670] CHIP:TOO:     [2]: de-DE
          [1661759583.482052][104665:104670] CHIP:TOO:     [3]: fr-FR
          [1661759583.482059][104665:104670] CHIP:TOO:     [4]: en-GB
          [1661759583.482069][104665:104670] CHIP:TOO:     [5]: es-ES
          [1661759583.482080][104665:104670] CHIP:TOO:     [6]: zh-CN
          [1661759583.482089][104665:104670] CHIP:TOO:     [7]: it-IT
          [1661759583.482097][104665:104670] CHIP:TOO:     [8]: ja-JP
          [1661759583.482158][104665:104670] CHIP:EM: Sending Standalone Ack for MessageCounter:46420218 on exchange 20687i
      disabled: true

    - label: "TH writes xx-XX to SupportedLocales attribute"
      verification: |
          ./chip-tool any write-by-id 0x002B 1 ""xx-XX"" 1 0
           Verify that DUT responds as UNSUPPORTED_WRITE on TH(chip-tool) log:

          [1653996674.832226][7281:7286] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1653996674.832300][7281:7286] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
          [1653996674.832411][7281:7286] CHIP:EM: Sending Standalone Ack for MessageCounter:12567655 on exchange 10797i
      disabled: true

    - label: "TH reads SupportedLocales attribute"
      verification: |
          ./chip-tool localizationconfiguration read supported-locales 1 0
          Verify that the  SupportedLocales atrribute entries are same as step 1  on TH(chip-tool) log:

          [1645772065.848431][3762:3767] CHIP:TOO:   SupportedLocales: 8 entries
          [1645772065.850249][3762:3767] CHIP:TOO:     [1]: en-US
          [1645772065.850298][3762:3767] CHIP:TOO:     [2]: de-DE
          [1645772065.850333][3762:3767] CHIP:TOO:     [3]: fr-FR
          [1645772065.850368][3762:3767] CHIP:TOO:     [4]: en-GB
          [1645772065.850402][3762:3767] CHIP:TOO:     [5]: es-ES
          [1645772065.850435][3762:3767] CHIP:TOO:     [6]: zh-CN
          [1645772065.850469][3762:3767] CHIP:TOO:     [7]: it-IT
          [1645772065.850502][3762:3767] CHIP:TOO:     [8]: ja-JP
          [1645772065.851668][3762:3767] CHIP:EM: Sending Standalone Ack for MessageCounter:4927804 on exchange 64827i
      disabled: true

    - label: "TH reads ActiveLocale Attribute from the DUT"
      PICS: LCFG.S.A0000
      verification: |
          ./chip-tool localizationconfiguration read active-locale 1 0
          Verify  that the ActiveLocale Attribute value is Language Tag as defined by BCP47 and is  present in the SupportedLocales attribute list and also the value is of maximum length of 35 bytes and if the value of ActiveLocale is not one among supportedLocales value then  default value is assigned by the Vendor on TH(chip-tool)log:

          [1661759849.744419][104758:104763] CHIP:DMG: }
          [1661759849.744488][104758:104763] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653748
          [1661759849.744509][104758:104763] CHIP:TOO:   ActiveLocale: en-US
          [1661759849.744553][104758:104763] CHIP:EM: Sending Standalone Ack for MessageCounter:93577923 on exchange 47198i
      disabled: true

    - label:
          "TH writes new string not present in SupportedLocale attribute to
          ActiveLocale Attribute."
      verification: |
          ./chip-tool localizationconfiguration write active-locale fw-GB 1 0
          Verify that DUT responds as CONSTRAINT_ERROR On TH(chip-tool) log:

          [[1651130076.882814][174458:174463] CHIP:DMG: WriteResponseMessage =
          [1651130076.882819][174458:174463] CHIP:DMG: {
          [1651130076.882824][174458:174463] CHIP:DMG:         AttributeStatusIBs =
          [1651130076.882832][174458:174463] CHIP:DMG:         [
          [1651130076.882835][174458:174463] CHIP:DMG:                 AttributeStatusIB =
          [1651130076.882842][174458:174463] CHIP:DMG:                 {
          [1651130076.882846][174458:174463] CHIP:DMG:                         AttributePathIB =
          [1651130076.882850][174458:174463] CHIP:DMG:                         {
          [1651130076.882855][174458:174463] CHIP:DMG:                                 Endpoint = 0x0,
          [1651130076.882861][174458:174463] CHIP:DMG:                                 Cluster = 0x2b,
          [1651130076.882867][174458:174463] CHIP:DMG:                                 Attribute = 0x0000_0001,
          [1651130076.882871][174458:174463] CHIP:DMG:                         }
          [1651130076.882877][174458:174463] CHIP:DMG:
          [1651130076.882881][174458:174463] CHIP:DMG:                         StatusIB =
          [1651130076.882885][174458:174463] CHIP:DMG:                         {
          [1651130076.882889][174458:174463] CHIP:DMG:                                 status = 0x87 (CONSTRAINT_ERROR),
          [1651130076.882893][174458:174463] CHIP:DMG:                         },
          [1651130076.882899][174458:174463] CHIP:DMG:
          [1651130076.882903][174458:174463] CHIP:DMG:                 },
          [1651130076.882908][174458:174463] CHIP:DMG:
          [1651130076.882911][174458:174463] CHIP:DMG:         ],
          [1651130076.882916][174458:174463] CHIP:DMG:
          [1651130076.882920][174458:174463] CHIP:DMG:         InteractionModelRevision = 1
          [1651130076.882923][174458:174463] CHIP:DMG: }
          [1651130076.882938][174458:174463] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
          [1651130076.882946][174458:174463] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1651130076.882957][174458:174463] CHIP:EM: Sending Standalone Ack for MessageCounter
      disabled: true

    - label:
          "TH writes new string present in SupportedLocale attribute to
          ActiveLocale Attribute"
      verification: |
          ./chip-tool localizationconfiguration write active-locale fr-FR 1 0
          Verify that DUT responds as SUCCESS on TH(chip-tool) log:

          [1661759978.806730][104802:104807] CHIP:DMG: WriteResponseMessage =
          [1661759978.806741][104802:104807] CHIP:DMG: {
          [1661759978.806749][104802:104807] CHIP:DMG:         AttributeStatusIBs =
          [1661759978.806766][104802:104807] CHIP:DMG:         [
          [1661759978.806775][104802:104807] CHIP:DMG:                 AttributeStatusIB =
          [1661759978.806785][104802:104807] CHIP:DMG:                 {
          [1661759978.806794][104802:104807] CHIP:DMG:                         AttributePathIB =
          [1661759978.806805][104802:104807] CHIP:DMG:                         {
          [1661759978.806817][104802:104807] CHIP:DMG:                                 Endpoint = 0x0,
          [1661759978.806828][104802:104807] CHIP:DMG:                                 Cluster = 0x2b,
          [1661759978.806842][104802:104807] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1661759978.806852][104802:104807] CHIP:DMG:                         }
          [1661759978.806866][104802:104807] CHIP:DMG:
          [1661759978.806875][104802:104807] CHIP:DMG:                         StatusIB =
          [1661759978.806887][104802:104807] CHIP:DMG:                         {
          [1661759978.806897][104802:104807] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1661759978.806909][104802:104807] CHIP:DMG:                         },
          [1661759978.806921][104802:104807] CHIP:DMG:
          [1661759978.806929][104802:104807] CHIP:DMG:                 },
          [1661759978.806944][104802:104807] CHIP:DMG:
          [1661759978.806952][104802:104807] CHIP:DMG:         ],
          [1661759978.806967][104802:104807] CHIP:DMG:
          [1661759978.806976][104802:104807] CHIP:DMG:         InteractionModelRevision = 1
          [1661759978.806985][104802:104807] CHIP:DMG: }
          [1661759978.807036][104802:104807] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1661759978.807064][104802:104807] CHIP:EM: Sending Standalone Ack for MessageCounter:124959015 on exchange 61726i
      disabled: true

    - label: "TH Reads ActiveLocale"
      verification: |
          ./chip-tool localizationconfiguration read active-locale 1 0
           Verify that the value of the ActiveLocale attribute is changed to SupportedLocale on TH(chip-tool) log:
          [1661760013.634782][104820:104825] CHIP:DMG: }
          [1661760013.634848][104820:104825] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653749
          [1661760013.634861][104820:104825] CHIP:TOO:   ActiveLocale: fr-FR
          [1661760013.634901][104820:104825] CHIP:EM: Sending Standalone Ack for MessageCounter:230450777 on exchange 24487i
      disabled: true
