# 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.14. [TC-DD-3.14] Commissioning Flow - QR Code - Negative Scenario [DUT -
    Commissioner]

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

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label: "Preconditions"
      verification: |
          1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.

          2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual).

          An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:

          - 3-bit Version String=000

          - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")

          - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")

          - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)

          - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)

          - 12-bit Discriminator=0xF00

          - 27-bit Passcode=20202021

          - 4-bit Padding=0000

          - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
      disabled: true

    - label: "Locate and scan/read the Commissionees QR code using DUT"
      verification: |
          Verify on the TH Commissionee side:
          $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021

          [1657235470.970680][371041:371041] CHIP:DL: Device Configuration:
          [1657235470.970772][371041:371041] CHIP:DL:   Serial Number: (not set)
          [1657235470.970811][371041:371041] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1657235470.970845][371041:371041] CHIP:DL:   Product Id: 32769 (0x8001)
          [1657235470.970892][371041:371041] CHIP:DL:   Hardware Version: 0
          [1657235470.970929][371041:371041] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1657235470.970984][371041:371041] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
          [1657235470.971031][371041:371041] CHIP:DL:   Manufacturing Date: (not set)
          [1657235470.971095][371041:371041] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1657235470.971147][371041:371041] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1657235470.971199][371041:371041] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
          [1657235470.971258][371041:371041] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657235470.971293][371041:371041] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
      disabled: true

    - label:
          "Version String: Using the QR code from Step 1, generate a new QR code
          but substituting out the current Version String with an invalid
          Version String (i.e. 010 or any non-zero 3-bit value)"
      verification: |
          1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code
          Verify on the TH Commissionee side:
          $ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1  --version 2
          [1657235626568] [31698:16839018] CHIP: [TOO] QR Code: MT:034J029Q00KA0648G00
      disabled: true

    - label:
          "Scan/read the QR code, generated in the previous step, using the DUT"
      verification: |
          Verify on the DUT Commissioner side:
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument

          No applicable TH Logs
      disabled: true

    - label:
          "Using the QR code from Step 1, ensure the THs Discovery Capability
          bit string is NOT set to BLE for discovery (i.e. set to OnNetwork
          discovery capability)"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code
          Verify on the TH Commissionee side:
          $ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1  --rendezvous 4
          [1657235754393] [31702:16840391] CHIP: [TOO] QR Code: MT:-24J029Q00KA0648G00

          Verify on the DUT Commissioner side:
          No applicable logs on the DUT side
      disabled: true

    - label: "Scan/read the QR code of the TH device using the DUT"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          Verify on the DUT Commissioner side:
          ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
          [1657235905214] [31706:16841970] CHIP: [CTL] Discovered device to be commissioned over DNS-SD
          ...
          [1657235906071] [31706:16841969] CHIP: [TOO] Device commissioning completed with success
      disabled: true

    - label:
          "Passcode: Using the QR code from Step 1, generate a new QR code using
          all the same Onboarding Payload components except for the Passcode.
          For each passcode in the following list, set the Passcode component to
          one of the invalid Passcodes and generate a new QR code using all the
          same Onboarding Payload components and one Passcode from the list:
          00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666,
          77777777, 88888888, 99999999, 12345678, 87654321"
      verification: |
          No applicable TH or DUT Logs
          "MT:-24J029Q00OC0000000" (00000000),
          "MT:-24J029Q00KMSP0Z800" (11111111),
          "MT:-24J029Q00GWID1WH00" (22222222),
          "MT:-24J029Q00C4912TQ00" (33333333),
          "MT:-24J029Q008E.Q2QZ00" (44444444),
          "MT:-24J029Q004ORE3N610" (55555555),
          "MT:-24J029Q000YH24KF10" (66666666),
          "MT:-24J029Q00Y58S4HO10" (77777777),
          "MT:-24J029Q00UF-F5EX10" (88888888),
          "MT:-24J029Q00QPQ36B420" (99999999),
          "MT:-24J029Q004QG46Y900" (12345678),
          "MT:-24J029Q00YX018EW10" (87654321)
      disabled: true

    - label:
          "Scan each of the generated QR codes from the previous step using DUT"
      verification: |
          Verify on the DUT Commissioner side:
          No applicable TH Logs

          ./chip-tool pairing code 1 MT:-24J029Q00OC0000000

          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00OC0000000
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00KMSP0Z800
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00GWID1WH00
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00C4912TQ00
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q008E.Q2QZ00
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q004ORE3N610
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q000YH24KF10
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00Y58S4HO10
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00UF-F5EX10
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00QPQ36B420
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q004QG46Y900
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument


          $ ./chip-tool pairing code 1 MT:-24J029Q00YX018EW10
          Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument
      disabled: true

    - label:
          "Prefix: Using the QR code from Step 1, generate a new QR code but
          substituting out the current Prefix with an invalid Prefix that is not
          MT: (i.e. Prefix=AB:)"
      verification: |
          AB:-24J029Q00KA0648G00

          No applicable TH or DUT Logs
      disabled: true

    - label:
          "Scan/read the QR code, generated in the previous step, using the DUT"
      verification: |
          Verify on the DUT Commissioner side:

          $ ./chip-tool pairing code 1 AB:-24J029Q00KA0648G00
          [1657236169984] [31732:16844455] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed

          No applicable TH Logs
      disabled: true
