# 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.11. [TC-DD-3.11] Commissioning Flow = 0 (Standard Flow) - QR Code [DUT -
    Commissioner]

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

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

tests:
    - label:
          "Standard Commissioning Flow: Use a Commissionee with a QR code that
          has the Custom Flow field set to 0 and supports BLE for its Discovery
          Capability. 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 --ble-device 1
          ...
          [1657232267.387816][370320:370320] CHIP:DL: Device Configuration:
          [1657232267.387853][370320:370320] CHIP:DL:   Serial Number: (not set)
          [1657232267.387907][370320:370320] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1657232267.387942][370320:370320] CHIP:DL:   Product Id: 32769 (0x8001)
          [1657232267.387974][370320:370320] CHIP:DL:   Hardware Version: 0
          [1657232267.387996][370320:370320] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1657232267.388017][370320:370320] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
          [1657232267.388045][370320:370320] CHIP:DL:   Manufacturing Date: (not set)
          [1657232267.388067][370320:370320] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1657232267.388101][370320:370320] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00]
          [1657232267.388128][370320:370320] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657232267.388148][370320:370320] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00
          [1657232267.388182][370320:370320] CHIP:SVR: Manual pairing code: [749701123365521327694]
      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:
          "Using the DUT, parse the THs QR code and follow any steps needed for
          the Commissioner/Commissionee to complete the commissioning process
          using BLE"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          TH Commissionee:

          [1657232374.956508][370357:370357] CHIP:DL: HandlePlatformSpecificBLEEvent 32784
          [1657232374.956534][370357:370357] CHIP:SVR: Commissioning completed successfully
          [1657232374.956577][370357:370357] CHIP:DIS: Updating services using commissioning mode 0

          DUT Commissioner:
          $ ./chip-tool pairing code 1  MT:-24J0YXE00KA0648G00

          [1657232374820] [31379:16804218] CHIP: [CTL] Received CommissioningComplete response, errorCode=0
          [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1657232374820] [31379:16804218] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "Standard Commissioning Flow: Use a Commissionee with a QR code that
          has the Custom Flow field set to 0, supports IP Network for its
          Discovery Capability and is already on the same IP network as the DUT
          commissioner. 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 0 --capabilities 4

          [1651105420.610637][27312:27312] CHIP:DL: Device Configuration:
          [1651105420.610695][27312:27312] CHIP:DL:   Serial Number: TEST_SN
          [1651105420.610727][27312:27312] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1651105420.610761][27312:27312] CHIP:DL:   Product Id: 32769 (0x8001)
          [1651105420.610792][27312:27312] CHIP:DL:   Hardware Version: 0
          [1651105420.610815][27312:27312] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1651105420.610836][27312:27312] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
          [1651105420.610864][27312:27312] CHIP:DL:   Manufacturing Date: (not set)
          [1651105420.610886][27312:27312] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1651105420.610907][27312:27312] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1651105420.610962][27312:27312] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00]
      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, chip-tool does not support physically scanning QR codes
      disabled: true

    - label:
          "Using the DUT, parse the THs QR code and follow any steps needed for
          the Commissioner/Commissionee to complete the commissioning process
          using IP Network"
      PICS: MCORE.DD.DISCOVERY_IP
      verification: |
          TH Commissionee:

          [1651105530.973166][27371:27371] CHIP:SVR: Commissioning completed successfully
          [1651105530.973215][27371:27371] CHIP:DIS: Updating services using commissioning mode 0

          DUT Commissioner:
          $ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00

          [1651105530854] [95067:65607294] CHIP: [CTL] Received CommissioningComplete response
          [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
          [1651105530854] [95067:65607294] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1651105530854] [95067:65607294] CHIP: [CTL] Performing next commissioning step "Cleanup"
          [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
          [1651105530854] [95067:65607294] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "Standard Commissioning Flow: Use a Commissionee with a QR code that
          has the Custom Flow field set to 0 and supports SoftAP for its
          Discovery Capability. 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
          1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes
      disabled: true

    - label:
          "Using the DUT, parse the THs QR code and follow any steps needed for
          the Commissioner/Commissionee 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
