# 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.3.12. [TC-DD-3.12] Commissioning Flow = 1 (User-Intent Flow) - QR Code
    [DUT - Commissioner]

PICS:
    - MCORE.ROLE.COMMISSIONER
    - MCORE.DD.QR_COMMISSIONING
    - MCORE.DD.USER_INTENT_COMM_FLOW

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

tests:
    - label:
          "User-Intent Commissioning Flow: Use a Commissionee with a QR code
          that has the Custom Flow field set to 1 and supports BLE for its
          Discovery Capability. Commissionee is NOT in commissioning mode.
          Ensure the Version bit string follows the current Matter spec.
          documentation."
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          $ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --custom-flow 1 --ble-device 1
          ...
          [1657234110.765139][370717:370717] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
          [1657234110.765249][370717:370717] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00]
          [1657234110.765314][370717:370717] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657234110.765364][370717:370717] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00
      disabled: true

    - label: "Scan the QR code from the previous step using the DUT."
      PICS: MCORE.DD.SCAN_QR_CODE
      verification: |
          1. Verify the QR code is scanned by DUT
          Note: chip-tool does not support physically scanning QR codes
      disabled: true

    - label: "DUT parses QR code."
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          1. Follow the steps given in the TH"s pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network

          On DUT=chip-tool:
          ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
          [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "Follow any steps from the resources provided by the pairing hint or
          by the THs manufacturer for putting the TH Commissionee device into
          commissioning mode and to complete the commissioning process using
          BLE."
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          TH Commissionee:
          [1651101988.943015][23212:23212] CHIP:SVR: Commissioning completed successfully
          [1651101988.943058][23212:23212] CHIP:DIS: Updating services using commissioning mode 0


          On DUT Commissioner=chip-tool:
          ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
          [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "User-Intent Commissioning Flow: Use a Commissionee with a QR code
          that has the Custom Flow field set to 1 and supports IP Network for
          its Discovery Capability. Commissionee is NOT in commissioning mode.
          Ensure the Version bit string follows the current Matter spec.
          documentation."
      PICS: MCORE.DD.DISCOVERY_IP
      verification: |
          $ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 1 --capabilities 4
          [1657234233.898170][370755:370755] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
          [1657234233.898195][370755:370755] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
          [1657234233.898227][370755:370755] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657234233.898248][370755:370755] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
      disabled: true

    - label: "Scan the QR code from the previous step using the DUT."
      PICS: MCORE.DD.SCAN_QR_CODE
      verification: |
          1. Verify the QR code is scanned by DUT
          Note: chip-tool does not support physically scanning QR codes
      disabled: true

    - label: "DUT parses QR code."
      PICS: MCORE.DD.DISCOVERY_IP
      verification: |
          1. Follow the steps given in the TH"s pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network


          On DUT=chip-tool:
          ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
          [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "Follow any steps from the resources provided by the pairing hint or
          by the THs manufacturer for putting the TH Commissionee device into
          commissioning mode and to complete the commissioning process using IP
          Network."
      PICS: MCORE.DD.DISCOVERY_IP
      verification: |
          TH all-clusters-app:
          [1657234324.992098][370755:370755] CHIP:SVR: Commissioning completed successfully
          [1657234324.992146][370755:370755] CHIP:DIS: Updating services using commissioning mode 0

          On DUT=chip-tool:
          ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
          [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "User-Intent Commissioning Flow: Use a Commissionee with a QR code
          that has the Custom Flow field set to 1 and supports SoftAP for its
          Discovery Capability. Commissionee is NOT in commissioning mode.
          Ensure the Version bit string follows the current Matter spec.
          documentation."
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported
      disabled: true

    - label: "Scan the QR code from the previous step using the DUT."
      PICS: MCORE.DD.SCAN_QR_CODE
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported
      disabled: true

    - label: "DUT parses QR code."
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported
      disabled: true

    - label:
          "Follow any steps from the resources provided by the pairing hint or
          by the THs manufacturer for putting the TH Commissionee device into
          commissioning mode and to complete the commissioning process using
          SoftAP."
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported
      disabled: true
