# 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.8. [TC-CADMIN-1.8] Commissioning window handling timeout and revocation
    using BCM [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: |
          1. Provision the device using DUT_CR1 controller on the raspi.
      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 your DUT controller open commissioning widow using BCM.

          Below is the example while using chip tool as controller,

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000

          CHIP:DMG: InvokeResponseMessage =
          [1650278416.248379][11064:11069] CHIP:DMG: {
          [1650278416.248436][11064:11069] CHIP:DMG:         suppressResponse = false,
          [1650278416.248495][11064:11069] CHIP:DMG:         InvokeResponseIBs =
          [1650278416.248570][11064:11069] CHIP:DMG:         [
          [1650278416.248630][11064:11069] CHIP:DMG:                 InvokeResponseIB =
          [1650278416.248718][11064:11069] CHIP:DMG:                 {
          [1650278416.248783][11064:11069] CHIP:DMG:                         CommandStatusIB =
          [1650278416.248860][11064:11069] CHIP:DMG:                         {
          [1650278416.248931][11064:11069] CHIP:DMG:                                 CommandPathIB =
          [1650278416.249011][11064:11069] CHIP:DMG:                                 {
          [1650278416.249100][11064:11069] CHIP:DMG:                                         EndpointId = 0x0,
          [1650278416.249186][11064:11069] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
          [1650278416.249430][11064:11069] CHIP:DMG:
          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
          [1650278416.249823][11064:11069] CHIP:DMG:
          [1650278416.249889][11064:11069] CHIP:DMG:                         },
          [1650278416.249969][11064:11069] CHIP:DMG:
          [1650278416.250035][11064:11069] CHIP:DMG:                 },
          [1650278416.250113][11064:11069] CHIP:DMG:
          [1650278416.250169][11064:11069] CHIP:DMG:         ],
          [1650278416.250241][11064:11069] CHIP:DMG:
          [1650278416.250298][11064:11069] CHIP:DMG:         InteractionModelRevision = 1
          [1650278416.250355][11064:11069] CHIP:DMG: },
          [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "A User Consent screen pops up asking for Users permission to allow
          second commissioner to control TH_CE"
      PICS: CADMIN.UserInterfaceDisplay
      verification: |
          Verify the User Consent pop up screen. Verify that the pop up closes after user gives permission
      disabled: true

    - label:
          "11 digit Manual Code is displayed on the screen in textual format for
          User to see"
      PICS: CADMIN.UserInterfaceDisplay
      verification: |
          Verify that the displayed Manual Code is 11 digits long and doesn’t contain Vendor_ID or Product_ID.
      disabled: true

    - label: "A voice prompt of the Manual Code format should be heard"
      PICS: CADMIN.AudioInterface
      verification: |
          Verify voice prompt saying the manual code. Verify the voice prompt repeats if user asks.
      disabled: true

    - label:
          "TH_CR2 starts a commissioning process with TH_CE after
          PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds"
      PICS: CADMIN.C
      verification: |
          On the 2nd controller using chip-tool , connect to the accessory

          ./chip-tool pairing onnetwork 1 20202021

          verify you got the following message in the TH log
          CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
          CHIP:TOO: Secure Pairing Failed
          CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a new commissioning window
          with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using
          BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On your first controller open commissioning widow using BCM.

          Below is the example while using chip tool as controller,

          ./chip-tool administratorcommissioning  open-basic-commissioning-window 500 1 0  --timedInteractionTimeoutMs 1000


          CHIP:DMG: InvokeResponseMessage =
          [1650278416.248379][11064:11069] CHIP:DMG: {
          [1650278416.248436][11064:11069] CHIP:DMG:         suppressResponse = false,
          [1650278416.248495][11064:11069] CHIP:DMG:         InvokeResponseIBs =
          [1650278416.248570][11064:11069] CHIP:DMG:         [
          [1650278416.248630][11064:11069] CHIP:DMG:                 InvokeResponseIB =
          [1650278416.248718][11064:11069] CHIP:DMG:                 {
          [1650278416.248783][11064:11069] CHIP:DMG:                         CommandStatusIB =
          [1650278416.248860][11064:11069] CHIP:DMG:                         {
          [1650278416.248931][11064:11069] CHIP:DMG:                                 CommandPathIB =
          [1650278416.249011][11064:11069] CHIP:DMG:                                 {
          [1650278416.249100][11064:11069] CHIP:DMG:                                         EndpointId = 0x0,
          [1650278416.249186][11064:11069] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
          [1650278416.249430][11064:11069] CHIP:DMG:
          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
          [1650278416.249823][11064:11069] CHIP:DMG:
          [1650278416.249889][11064:11069] CHIP:DMG:                         },
          [1650278416.249969][11064:11069] CHIP:DMG:
          [1650278416.250035][11064:11069] CHIP:DMG:                 },
          [1650278416.250113][11064:11069] CHIP:DMG:
          [1650278416.250169][11064:11069] CHIP:DMG:         ],
          [1650278416.250241][11064:11069] CHIP:DMG:
          [1650278416.250298][11064:11069] CHIP:DMG:         InteractionModelRevision = 1
          [1650278416.250355][11064:11069] CHIP:DMG: },
          [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
      PICS: CADMIN.C.C02.Tx
      verification: |
          On your DUT controller revoke commissioning

          Below is the example while using chip tool as controller,
          /chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000

          CHIP:DMG: InvokeResponseMessage =
          [1650278416.248379][11064:11069] CHIP:DMG: {
          [1650278416.248436][11064:11069] CHIP:DMG:         suppressResponse = false,
          [1650278416.248495][11064:11069] CHIP:DMG:         InvokeResponseIBs =
          [1650278416.248570][11064:11069] CHIP:DMG:         [
          [1650278416.248630][11064:11069] CHIP:DMG:                 InvokeResponseIB =
          [1650278416.248718][11064:11069] CHIP:DMG:                 {
          [1650278416.248783][11064:11069] CHIP:DMG:                         CommandStatusIB =
          [1650278416.248860][11064:11069] CHIP:DMG:                         {
          [1650278416.248931][11064:11069] CHIP:DMG:                                 CommandPathIB =
          [1650278416.249011][11064:11069] CHIP:DMG:                                 {
          [1650278416.249100][11064:11069] CHIP:DMG:                                         EndpointId = 0x0,
          [1650278416.249186][11064:11069] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
          [1650278416.249430][11064:11069] CHIP:DMG:
          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
          [1650278416.249823][11064:11069] CHIP:DMG:
          [1650278416.249889][11064:11069] CHIP:DMG:                         },
          [1650278416.249969][11064:11069] CHIP:DMG:
          [1650278416.250035][11064:11069] CHIP:DMG:                 },
          [1650278416.250113][11064:11069] CHIP:DMG:
          [1650278416.250169][11064:11069] CHIP:DMG:         ],
          [1650278416.250241][11064:11069] CHIP:DMG:
          [1650278416.250298][11064:11069] CHIP:DMG:         InteractionModelRevision = 1
          [1650278416.250355][11064:11069] CHIP:DMG: },
          [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "TH_CR2 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On the 2nd controller using chip-tool , connect to the accessory

          ./chip-tool pairing onnetwork 1 20202021

          verify you got the following message in the TH log
          CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
          CHIP:TOO: Secure Pairing Failed
          CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
      PICS: CADMIN.C.C02.Tx
      verification: |
          On your DUT controller revoke commissioning

          Below is the example while using chip tool as controller,

          /chip-tool administratorcommissioning revoke-commissioning 2 0 --timedInteractionTimeoutMs 1000

          CHIP:DMG: InvokeResponseMessage =
          [1650524034.111241][15422:15427] CHIP:DMG: {
          [1650524034.111316][15422:15427] CHIP:DMG:         suppressResponse = false,
          [1650524034.111383][15422:15427] CHIP:DMG:         InvokeResponseIBs =
          [1650524034.111464][15422:15427] CHIP:DMG:         [
          [1650524034.111531][15422:15427] CHIP:DMG:                 InvokeResponseIB =
          [1650524034.111643][15422:15427] CHIP:DMG:                 {
          [1650524034.111714][15422:15427] CHIP:DMG:                         CommandStatusIB =
          [1650524034.111803][15422:15427] CHIP:DMG:                         {
          [1650524034.111886][15422:15427] CHIP:DMG:                                 CommandPathIB =
          [1650524034.111979][15422:15427] CHIP:DMG:                                 {
          [1650524034.112072][15422:15427] CHIP:DMG:                                         EndpointId = 0x0,
          [1650524034.112167][15422:15427] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650524034.112257][15422:15427] CHIP:DMG:                                         CommandId = 0x2,
          [1650524034.112345][15422:15427] CHIP:DMG:                                 },
          [1650524034.112456][15422:15427] CHIP:DMG:
          [1650524034.112543][15422:15427] CHIP:DMG:                                 StatusIB =
          [1650524034.112632][15422:15427] CHIP:DMG:                                 {
          [1650524034.112727][15422:15427] CHIP:DMG:                                         status = 0x01 (FAILURE),
          [1650524034.112825][15422:15427] CHIP:DMG:                                         cluster-status = 0x3,
          [1650524034.112914][15422:15427] CHIP:DMG:                                 },
          [1650524034.113005][15422:15427] CHIP:DMG:
          [1650524034.113084][15422:15427] CHIP:DMG:                         },
          [1650524034.113176][15422:15427] CHIP:DMG:
          [1650524034.113245][15422:15427] CHIP:DMG:                 },
          [1650524034.113328][15422:15427] CHIP:DMG:
          [1650524034.113392][15422:15427] CHIP:DMG:         ],
          [1650524034.113477][15422:15427] CHIP:DMG:
          [1650524034.113545][15422:15427] CHIP:DMG:         InteractionModelRevision = 1
          [1650524034.113610][15422:15427] CHIP:DMG: },
          [1650524034.113780][15422:15427] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002 Status=0x1
          [1650524034.113892][15422:15427] CHIP:TOO: Error: IM Error 0x00000603: Cluster-specific error: 0x03
      disabled: true

    - label:
          "DUT_CR1 sends commands to TH_CE to write and read the Basic
          Information Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          Using your DUT 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

          CHIP:DMG: WriteResponseMessage =
          [1649245940.788522][10110:10115] CHIP:DMG: {
          [1649245940.788577][10110:10115] CHIP:DMG:         AttributeStatusIBs =
          [1649245940.788653][10110:10115] CHIP:DMG:         [
          [1649245940.788713][10110:10115] CHIP:DMG:                 AttributeStatusIB =
          [1649245940.788787][10110:10115] CHIP:DMG:                 {
          [1649245940.788852][10110:10115] CHIP:DMG:                         AttributePathIB =
          [1649245940.788931][10110:10115] CHIP:DMG:                         {
          [1649245940.789009][10110:10115] CHIP:DMG:                                 Endpoint = 0x0,
          [1649245940.789143][10110:10115] CHIP:DMG:                                 Cluster = 0x28,
          [1649245940.789228][10110:10115] CHIP:DMG:                                 Attribute = 0x0000_0005,
          [1649245940.789313][10110:10115] CHIP:DMG:                         }
          [1649245940.789388][10110:10115] CHIP:DMG:
          [1649245940.789454][10110:10115] CHIP:DMG:                         StatusIB =
          [1649245940.789519][10110:10115] CHIP:DMG:                         {
          [1649245940.789588][10110:10115] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1649245940.789654][10110:10115] CHIP:DMG:                         },
          [1649245940.789719][10110:10115] CHIP:DMG:
          [1649245940.789778][10110:10115] CHIP:DMG:                 },
          [1649245940.789841][10110:10115] CHIP:DMG:
          [1649245940.789885][10110:10115] CHIP:DMG:         ],
          [1649245940.789941][10110:10115] CHIP:DMG:
          [1649245940.789984][10110:10115] CHIP:DMG:         InteractionModelRevision = 1
          [1649245940.790033][10110:10115] CHIP:DMG: }
          [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]

          Verify read attribute returns the updated value written
          ./chip-tool basic read node-label 2 0
          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
          [1649245950.006849][10116:10121] CHIP:TOO:   NodeLabel: te5new
          [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
      disabled: true

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

          Below is the example while using chip tool as controller,

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000



          CHIP:DMG: InvokeResponseMessage =
          [1650278416.248379][11064:11069] CHIP:DMG: {
          [1650278416.248436][11064:11069] CHIP:DMG:         suppressResponse = false,
          [1650278416.248495][11064:11069] CHIP:DMG:         InvokeResponseIBs =
          [1650278416.248570][11064:11069] CHIP:DMG:         [
          [1650278416.248630][11064:11069] CHIP:DMG:                 InvokeResponseIB =
          [1650278416.248718][11064:11069] CHIP:DMG:                 {
          [1650278416.248783][11064:11069] CHIP:DMG:                         CommandStatusIB =
          [1650278416.248860][11064:11069] CHIP:DMG:                         {
          [1650278416.248931][11064:11069] CHIP:DMG:                                 CommandPathIB =
          [1650278416.249011][11064:11069] CHIP:DMG:                                 {
          [1650278416.249100][11064:11069] CHIP:DMG:                                         EndpointId = 0x0,
          [1650278416.249186][11064:11069] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
          [1650278416.249430][11064:11069] CHIP:DMG:
          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
          [1650278416.249823][11064:11069] CHIP:DMG:
          [1650278416.249889][11064:11069] CHIP:DMG:                         },
          [1650278416.249969][11064:11069] CHIP:DMG:
          [1650278416.250035][11064:11069] CHIP:DMG:                 },
          [1650278416.250113][11064:11069] CHIP:DMG:
          [1650278416.250169][11064:11069] CHIP:DMG:         ],
          [1650278416.250241][11064:11069] CHIP:DMG:
          [1650278416.250298][11064:11069] CHIP:DMG:         InteractionModelRevision = 1
          [1650278416.250355][11064:11069] CHIP:DMG: },
          [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "TH_CR2 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On the 2nd controller using chip-tool , connect to the accessory

          ./chip-tool pairing onnetwork 1 20202021

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

    - label: "TH_CR3 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On the 3rd controller using chip-tool , connect to the accessory

          ./chip-tool pairing onnetwork 1 20202021

          verify you got the following message in the TH log
          CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
          CHIP:TOO: Secure Pairing Failed
          CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
      disabled: true
