# 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: 3.2.7. [TC-ACL-2.7] Extension multi-fabric

PICS:
    - ACL.S

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

tests:
    - label: "TH1 commissions DUT using admin node ID N1"
      verification: |
          DUT
          sudo ./chip-all-clusters-app

          TH
          ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 OperationalCredentials cluster
          CurrentFabricIndex attribute"
      verification: |
          ./chip-tool operationalcredentials read current-fabric-index 1 0

          On TH(Chiptool), verify  CurrentFabricIndex attribute of operationalCredential cluster  as 1

          [1657186774.908634][10846:10851] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3161849734
          [1657186774.911149][10846:10851] CHIP:TOO:   CurrentFabricIndex: 1
      disabled: true

    - label:
          "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin
          node ID N2"
      verification: |
          Open a commissioning window On TH(Chiptool)1 using below command

          ./chip-tool  pairing open-commissioning-window 1 1 400 2000 3841
          [1657186324.710951][10820:10825] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x0
          [1657186324.710980][10820:10825] CHIP:CTL: Successfully opened pairing window On TH(Chiptool)e device
          [1657186324.711048][10820:10825] CHIP:CTL: Manual pairing code: [36253605617]
          [1657186324.711108][10820:10825] CHIP:CTL: SetupQRCode: [MT:-24J0IRV01A7TB7E700]


          Commission TH2(Chiptool) to DUT using manualcode generated in TH1 using open commission window

          ./chip-tool pairing code 2 36253605617
          [1657186359.584672][3509:3514] CHIP:CTL: Successfully finished commissioning step "Cleanup"
          [1657186359.584743][3509:3514] CHIP:TOO: Device commissioning completed with success
      disabled: true

    - label:
          "TH2 reads DUT Endpoint 0 OperationalCredentials cluster
          CurrentFabricIndex attribute"
      verification: |
          ./chip-tool operationalcredentials read current-fabric-index 2 0

          On TH(Chiptool), verify  CurrentFabricIndex attribute of operationalCredential cluster  as 2
          [1657186956.724761][3910:3915] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3161849734
          [1657186956.731658][3910:3915] CHIP:TOO:   CurrentFabricIndex: 2
      disabled: true

    - label:
          "TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute,
          value is list of AccessControlExtensionStruct containing 1 element
          1.struct .Data field: D_OK_EMPTY 1718"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool accesscontrol write extension "[{"data":"1718"}]" 1 0

          On TH(Chiptool)1,Verify  Successfully to extension attribute list containg one element .


          657893593.975649][4116:4121] CHIP:DMG:                {
          [1657893593.975678][4116:4121] CHIP:DMG:                        AttributePathIB =
          [1657893593.975718][4116:4121] CHIP:DMG:                        {
          [1657893593.975755][4116:4121] CHIP:DMG:                                Endpoint = 0x0,
          [1657893593.975797][4116:4121] CHIP:DMG:                                Cluster = 0x1f,
          [1657893593.975835][4116:4121] CHIP:DMG:                                Attribute = 0x0000_0001,
          [1657893593.975871][4116:4121] CHIP:DMG:                        }
          [1657893593.975910][4116:4121] CHIP:DMG:
          [1657893593.975944][4116:4121] CHIP:DMG:                        StatusIB =
          [1657893593.975980][4116:4121] CHIP:DMG:                        {
          [1657893593.976015][4116:4121] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1657893593.976054][4116:4121] CHIP:DMG:                        },
          [1657893593.976088][4116:4121] CHIP:DMG:
          [1657893593.976119][4116:4121] CHIP:DMG:                },
          [1657893593.976161][4116:4121] CHIP:DMG:
          [1657893593.976188][4116:4121] CHIP:DMG:                AttributeStatusIB =
          [1657893593.976220][4116:4121] CHIP:DMG:                {
          [1657893593.976248][4116:4121] CHIP:DMG:                        AttributePathIB =
          [1657893593.976281][4116:4121] CHIP:DMG:                        {
          [1657893593.976316][4116:4121] CHIP:DMG:                                Endpoint = 0x0,
          [1657893593.976354][4116:4121] CHIP:DMG:                                Cluster = 0x1f,
          [1657893593.976395][4116:4121] CHIP:DMG:                                Attribute = 0x0000_0001,
          [1657893593.976434][4116:4121] CHIP:DMG:                                ListIndex = Null,
          [1657893593.976469][4116:4121] CHIP:DMG:                        }
          [1657893593.976507][4116:4121] CHIP:DMG:
          [1657893593.976541][4116:4121] CHIP:DMG:                        StatusIB =
          [1657893593.976574][4116:4121] CHIP:DMG:                        {
          [1657893593.976610][4116:4121] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1657893593.976645][4116:4121] CHIP:DMG:                        },
          [1657893593.976678][4116:4121] CHIP:DMG:
          [1657893593.976709][4116:4121] CHIP:DMG:                },
          [1657893593.976744][4116:4121] CHIP:DMG:
          [1657893593.976771][4116:4121] CHIP:DMG:        ],
          [1657893593.976808][4116:4121] CHIP:DMG:
          [1657893593.976835][4116:4121] CHIP:D
      disabled: true

    - label:
          "TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute
          value is list of AccessControlExtensionStruct containing 1 element
          1.struct Data field: D_OK_SINGLE
          17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool   accesscontrol  write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 2 0

          On TH(Chiptool)2,Verify Successfully to extension attribute list containg one element .
          1657894672.479983][2433:2438] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1657894672.480057][2433:2438] CHIP:DMG: WriteResponseMessage =
          [1657894672.480092][2433:2438] CHIP:DMG: {
          [1657894672.480124][2433:2438] CHIP:DMG:         AttributeStatusIBs =
          [1657894672.480175][2433:2438] CHIP:DMG:         [
          [1657894672.480211][2433:2438] CHIP:DMG:                 AttributeStatusIB =
          [1657894672.480251][2433:2438] CHIP:DMG:                 {
          [1657894672.480288][2433:2438] CHIP:DMG:                         AttributePathIB =
          [1657894672.480333][2433:2438] CHIP:DMG:                         {
          [1657894672.480379][2433:2438] CHIP:DMG:                                 Endpoint = 0x0,
          [1657894672.480427][2433:2438] CHIP:DMG:                                 Cluster = 0x1f,
          [1657894672.480476][2433:2438] CHIP:DMG:                                 Attribute = 0x0000_0001,
          [1657894672.480521][2433:2438] CHIP:DMG:                         }
          [1657894672.480570][2433:2438] CHIP:DMG:
          [1657894672.480612][2433:2438] CHIP:DMG:                         StatusIB =
          [1657894672.480657][2433:2438] CHIP:DMG:                         {
          [1657894672.480700][2433:2438] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657894672.480745][2433:2438] CHIP:DMG:                         },
          [1657894672.480789][2433:2438] CHIP:DMG:
          [1657894672.480826][2433:2438] CHIP:DMG:                 },
          [1657894672.480877][2433:2438] CHIP:DMG:
          [1657894672.480911][2433:2438] CHIP:DMG:                 AttributeStatusIB =
          [1657894672.480949][2433:2438] CHIP:DMG:                 {
          [1657894672.480986][2433:2438] CHIP:DMG:                         AttributePathIB =
          [1657894672.481028][2433:2438] CHIP:DMG:                         {
          [1657894672.481072][2433:2438] CHIP:DMG:                                 Endpoint = 0x0,
          [1657894672.481120][2433:2438] CHIP:DMG:                                 Cluster = 0x1f,
          [1657894672.481168][2433:2438] CHIP:DMG:                                 Attribute = 0x0000_0001,
          [1657894672.481214][2433:2438] CHIP:DMG:                                 ListIndex = Null,
          [1657894672.481258][2433:2438] CHIP:DMG:                         }
          [1657894672.481306][2433:2438] CHIP:DMG:
          [1657894672.481347][2433:2438] CHIP:DMG:                         StatusIB =
          [1657894672.481390][2433:2438] CHIP:DMG:                         {
          [1657894672.481433][2433:2438] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657894672.481482][2433:2438] CHIP:DMG:                         },
          [1657894672.481526][2433:2438] CHIP:DMG:
          [1657894672.481562][2433:2438] CHIP:DMG:                 },
          [1657894672.481605][2433:2438] CHIP:DMG:
          [1657894672.481639][2433:2438] CHIP:DMG:         ],
          [1657894672.481686][2433:2438] CHIP:DMG:
          [1657894672.481720][2433:2438] CHIP:DMG:         InteractionModelRevision = 1
          [1657894672.481754][2433:2438] CHIP:DMG: }
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool accesscontrol read extension 1 0
          On TH(Chiptool)1 ,verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F2

          [1657187433.621369][10890:10895] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 3415499944
          [1657187433.621422][10890:10895] CHIP:TOO:   Extension: 1 entries
          [1657187433.621470][10890:10895] CHIP:TOO:     [1]: {
          [1657187433.621498][10890:10895] CHIP:TOO:       Data: 1000110010001100
          [1657187433.621534][10890:10895] CHIP:TOO:       FabricIndex: 1
          [1657187433.621557][10890:10895] CHIP:TOO:      }
      disabled: true

    - label:
          "TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool accesscontrol read extension 2 0

          On TH(Chiptool)2 , Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1
          [1658327214.683199][2749:2754] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 2953114587
          [1658327214.683283][2749:2754] CHIP:TOO:   Extension: 1 entries
          [1658327214.683348][2749:2754] CHIP:TOO:     [1]: {
          [1658327214.683388][2749:2754] CHIP:TOO:       Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018
          [1658327214.683423][2749:2754] CHIP:TOO:       FabricIndex: 2
          [1658327214.683454][2749:2754] CHIP:TOO:      }
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          AccessControlExtensionChanged event"
      PICS: ACL.S.E01
      verification: |
          ./chip-tool   accesscontrol  read-event  access-control-extension-changed 1 0
          On TH(Chiptool)1 , Verify AccessControlExtensionChanged containing 1 element, and MUST NOT contain an element with FabricIndex F2

          [1658327494.282263][2810:2815] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001
          [1658327494.282295][2810:2815] CHIP:TOO:          Event number: 5
          [1658327494.282319][2810:2815] CHIP:TOO:          Priority: Info
          [1658327494.282342][2810:2815] CHIP:TOO:          Timestamp: 4621721
          [1658327494.282458][2810:2815] CHIP:TOO:   AccessControlExtensionChanged: {
          [1658327494.282497][2810:2815] CHIP:TOO:     AdminNodeID: 112233
          [1658327494.282524][2810:2815] CHIP:TOO:     AdminPasscodeID: null
          [1658327494.282551][2810:2815] CHIP:TOO:     ChangeType: 1
          [1658327494.282576][2810:2815] CHIP:TOO:     LatestValue: {
          [1658327494.282633][2810:2815] CHIP:TOO:       Data: 1718
          [1658327494.282660][2810:2815] CHIP:TOO:       FabricIndex: 1
          [1658327494.282684][2810:2815] CHIP:TOO:      }
          [1658327494.282709][2810:2815] CHIP:TOO:     AdminFabricIndex: 1
          [1658327494.282733][2810:2815] CHIP:TOO:    }
      disabled: true

    - label:
          "TH2 reads DUT Endpoint 0 AccessControl cluster
          AccessControlExtensionChanged event"
      PICS: ACL.S.E01
      verification: |
          ./chip-tool accesscontrol read-event access-control-extension-changed  2
          On TH(Chiptool)2 , Verify AccessControlExtensionChanged containing 1 element, and MUST NOT contain an element with FabricIndex F1
          [1658327551.622018][4295:4300] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001
          [1658327551.622043][4295:4300] CHIP:TOO:          Event number: 6
          [1658327551.622065][4295:4300] CHIP:TOO:          Priority: Info
          [1658327551.622130][4295:4300] CHIP:TOO:          Timestamp: 4633724
          [1658327551.622239][4295:4300] CHIP:TOO:   AccessControlExtensionChanged: {
          [1658327551.622287][4295:4300] CHIP:TOO:     AdminNodeID: 112233
          [1658327551.622313][4295:4300] CHIP:TOO:     AdminPasscodeID: null
          [1658327551.622337][4295:4300] CHIP:TOO:     ChangeType: 1
          [1658327551.622361][4295:4300] CHIP:TOO:     LatestValue: {
          [1658327551.622389][4295:4300] CHIP:TOO:       Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018
          [1658327551.622414][4295:4300] CHIP:TOO:       FabricIndex: 2
          [1658327551.622436][4295:4300] CHIP:TOO:      }
          [1658327551.622459][4295:4300] CHIP:TOO:     AdminFabricIndex: 2
          [1658327551.622480][4295:4300] CHIP:TOO:    }
      disabled: true
