# 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:
    4.1.14. [TC-CADMIN-1.14] Open commissioning window twice on DUT using BCM
    then ECM [DUT - Commissioner]

PICS:
    - CADMIN.C

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

tests:
    - label: "Precondition: Reset DUT_CE to factory defaults"
      verification: |
          verification step to be updated.
      disabled: true

    - label: "DUT_CR1 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and
          TH_CR3 Commissions with TH_CE"
      PICS: CADMIN.C.C01.Tx
      verification: |
          "1. Provision the device using your DUT controller (use above instructions) ,
          "
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and
          TH_CR2 Commissions with TH_CE"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On your DUT controller, open commissioning window using ECM

          Below is the example while using chip tool as controller
          ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840

          [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established
          [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!!
          [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1
          [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm]
          [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma]
          [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0.
          [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
          [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
          [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
          [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On 2nd controller using chip tool connect using manual code
          ./chip-tool pairing code 1 35484132896

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus
          attribute"
      PICS: CADMIN.C.A0000
      verification: |
          On your DUT controller, open commissioning window using ECM

          Below is the example while using chip tool as controller
          ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840

          [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established
          [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!!
          [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1
          [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm]
          [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma]
          [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0.
          [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
          [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
          [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
          [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning
          window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds
          using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On 3rd controller using chip tool connect using manual code
          ./chip-tool pairing code 3 35484132896

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 4"
      verification: |
          On 1st controller using chip tool, read fabrics list

          ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768
          [1650527361.425870][15792:15797] CHIP:TOO:   Fabrics: 3 entries
          [1650527361.426777][15792:15797] CHIP:TOO:     [1]: {
          [1650527361.426859][15792:15797] CHIP:TOO:       RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01
          [1650527361.426923][15792:15797] CHIP:TOO:       VendorId: 65521
          [1650527361.426979][15792:15797] CHIP:TOO:       FabricId: 1
          [1650527361.427033][15792:15797] CHIP:TOO:       NodeId: 1
          [1650527361.427088][15792:15797] CHIP:TOO:       Label:
          [1650527361.427166][15792:15797] CHIP:TOO:       FabricIndex: 1
          [1650527361.427376][15792:15797] CHIP:TOO:      }
          [1650527361.427464][15792:15797] CHIP:TOO:     [2]: {
          [1650527361.427532][15792:15797] CHIP:TOO:       RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7
          [1650527361.427595][15792:15797] CHIP:TOO:       VendorId: 65521
          [1650527361.427649][15792:15797] CHIP:TOO:       FabricId: 1
          [1650527361.427703][15792:15797] CHIP:TOO:       NodeId: 3
          [1650527361.427756][15792:15797] CHIP:TOO:       Label:
          [1650527361.427811][15792:15797] CHIP:TOO:       FabricIndex: 2
          [1650527361.427868][15792:15797] CHIP:TOO:      }
          [1650527361.427943][15792:15797] CHIP:TOO:     [3]: {
          [1650527361.428008][15792:15797] CHIP:TOO:       RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD
          [1650527361.428067][15792:15797] CHIP:TOO:       VendorId: 65521
          [1650527361.428122][15792:15797] CHIP:TOO:       FabricId: 1
          [1650527361.428176][15792:15797] CHIP:TOO:       NodeId: 2
          [1650527361.428229][15792:15797] CHIP:TOO:       Label:
          [1650527361.428282][15792:15797] CHIP:TOO:       FabricIndex: 3
          [1650527361.428335][15792:15797] CHIP:TOO:      }
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to re-opens a commissioning window
          with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using
          ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          on 2nd controller using chip tool, remove fabric with FabricIndex=2

          ./chip-tool operationalcredentials remove-fabric 2 1 0

          CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
          CHIP:TOO:   NOCResponse: {
          CHIP:TOO:     statusCode: 0
          CHIP:TOO:     fabricIndex: 2
          CHIP:TOO:    }
          CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus
          attribute"
      PICS: CADMIN.C.A0000
      verification: |
          Using your 2nd controller, write attribute and read attribute to and from TH_CE

          Below is the example while using chip tool on second controller,
          ./chip-tool basic write node-label te5new 2 0

           Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
          [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
          [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53

          ./chip-tool basic read node-label 2 0

           Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
          [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
          [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning
          window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds
          using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On 1st controller using chip tool, read fabrics list

          Below is the command using chip tool controller

          ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219
          [1647863260.286772][9294:9299] CHIP:TOO:   Fabrics: 2 entries
          [1647863260.286908][9294:9299] CHIP:TOO:     [1]: {
          [1647863260.286947][9294:9299] CHIP:TOO:       RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
          [1647863260.286995][9294:9299] CHIP:TOO:       VendorId: 65521
          [1647863260.287026][9294:9299] CHIP:TOO:       FabricId: 1
          [1647863260.287055][9294:9299] CHIP:TOO:       NodeId: 1
          [1647863260.287084][9294:9299] CHIP:TOO:       Label:
          [1647863260.287113][9294:9299] CHIP:TOO:       FabricIndex: 1
          [1647863260.287144][9294:9299] CHIP:TOO:      }
          [1647863260.287185][9294:9299] CHIP:TOO:     [2]: {
          [1647863260.287221][9294:9299] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863260.287253][9294:9299] CHIP:TOO:       VendorId: 65521
          [1647863260.287282][9294:9299] CHIP:TOO:       FabricId: 1
          [1647863260.287310][9294:9299] CHIP:TOO:       NodeId: 3
          [1647863260.287339][9294:9299] CHIP:TOO:       Label:
          [1647863260.287368][9294:9299] CHIP:TOO:       FabricIndex: 3
          [1647863260.287396][9294:9299] CHIP:TOO:      }
          [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i"
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 8"
      verification: |
          grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
          + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001             _matter._tcp         local
          + wlp5s0 IPv6 03E707466A904C7E-0000000000000003             _matter._tcp         local
          = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001             _matter._tcp         local
             hostname = [E45F010F27530000.local]
             address = [fe80::e65f:1ff:fe0f:2753]
             port = [5540]
             txt = ["T=1" "SAI=300" "SII=5000"]
          = wlp5s0 IPv6 03E707466A904C7E-0000000000000003             _matter._tcp         local
             hostname = [E45F010F27530000.local]
             address = [fe80::e65f:1ff:fe0f:2753]
             port = [5540]
             txt = ["T=1" "SAI=300" "SII=5000"]
          grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On 1st controller chip tool, open commissioning window

          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840

          [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
          [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
          [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
          [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
          [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
          [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
          [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
          [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
          [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633]
          [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
          [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 12, TH_CR2 sends command to TH_CE to open a second
          commissioning window with a commissioning timeout of
          PIXIT.CADMIN.CwDuration seconds using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On 2nd controller using chip tool connect to the accessory


          ./chip-tool pairing code 1 36217551633

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 12"
      verification: |
          On 1st controller, read fabrics list

          Below is the command using chip tool controller

          ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
          [1647863342.980899][9309:9314] CHIP:TOO:   Fabrics: 3 entries
          [1647863342.981158][9309:9314] CHIP:TOO:     [1]: {
          [1647863342.981231][9309:9314] CHIP:TOO:       RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
          [1647863342.981322][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.981380][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.981434][9309:9314] CHIP:TOO:       NodeId: 1
          [1647863342.981486][9309:9314] CHIP:TOO:       Label:
          [1647863342.981539][9309:9314] CHIP:TOO:       FabricIndex: 1
          [1647863342.981594][9309:9314] CHIP:TOO:      }
          [1647863342.981671][9309:9314] CHIP:TOO:     [2]: {
          [1647863342.981737][9309:9314] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863342.981796][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.981849][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.981901][9309:9314] CHIP:TOO:       NodeId: 3
          [1647863342.981952][9309:9314] CHIP:TOO:       Label:
          [1647863342.982005][9309:9314] CHIP:TOO:       FabricIndex: 3
          [1647863342.982057][9309:9314] CHIP:TOO:      }
          [1647863342.982131][9309:9314] CHIP:TOO:     [3]: {
          [1647863342.982195][9309:9314] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863342.982252][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.982305][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.982357][9309:9314] CHIP:TOO:       NodeId: 2
          [1647863342.982409][9309:9314] CHIP:TOO:       Label:
          [1647863342.982460][9309:9314] CHIP:TOO:       FabricIndex: 4
          [1647863342.982512][9309:9314] CHIP:TOO:      }
          [1647863342.982738][9309:9314] CHIP:EM: Sending Standalone Ack for MessageCounter:5772016 on exchange 3310i
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read WindowStatus attribute"
      PICS: CADMIN.C.A0000
      verification: |
          Verify DUT successfully reads window status


          ./chip-tool administratorcommissioning read window-status 1 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
          [1651137648.760469][14047:14052] CHIP:TOO:   WindowStatus: 0
          [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i"
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read AdminFabricIndex attribute"
      PICS: CADMIN.C.A0001
      verification: |
          Verifu DUT successfully reads AdminFabricIndex

          ./chip-tool administratorcommissioning read admin-fabric-index  1 0

          [1659097193.389295][11728:11733] CHIP:DMG: }
          [1659097193.389588][11728:11733] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0001 DataVersion: 1299585105
          [1659097193.389731][11728:11733] CHIP:TOO:   AdminFabricIndex: 0
          [1659097193.389913][11728:11733] CHIP:EM: Sending Standalone Ack for MessageCounter:195671426 on exchange 34244i
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read AdminVendorId attribute"
      PICS: CADMIN.C.A0002
      verification: |
          Verify DUT successfully reads AdminVendoeId

          ./chip-tool administratorcommissioning read admin-vendor-id 1 0

          [1658838521.588942][9317:9322] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0002 DataVersion: 2423106591
          [1658838521.589005][9317:9322] CHIP:TOO:   AdminVendorId: 0
          [1658838521.589079][9317:9322] CHIP:EM: Sending Standalone Ack for MessageCounter:217165763 on exchange 55683i
      disabled: true
