# 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.2.2. [TC-DD-2.2] Discovery by Commissioner Verification [DUT -
    Commissioner]

PICS:
    - MCORE.ROLE.COMMISSIONER

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    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 - 5.4.3. Discovery by Commissioner - DUT supports BLE (central role), Wi-Fi and IP connectivity - Wi-Fi certified n client

          2 - Test Harness must support all discovery transport technologies as the DUT (i.e. BLE, Wi-Fi and IP connectivity)

          To put the DUT into commissionable state and verify commissionable state.
          This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use "chiptool discover commissionables"  to discover mDNS adv and provision the device using "chip-tool pairing code node-id payload".
          otherwise if your DUT is advertising over BLE , pls use the "/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1" command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT)
      disabled: true

    - label: "TH starts matter announcement procedure using BLE transport"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          ./chip-all-clusters-app --wifi  --discriminator 3841
          Verify in DUT (ALL-CLUSTER-APP):

          [1657221603.350406][368108:368108] CHIP:DL: Device Configuration:
          [1657221603.350445][368108:368108] CHIP:DL:   Serial Number: TEST_SN
          [1657221603.350488][368108:368108] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1657221603.350523][368108:368108] CHIP:DL:   Product Id: 32769 (0x8001)
          [1657221603.350555][368108:368108] CHIP:DL:   Hardware Version: 0
          [1657221603.350579][368108:368108] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1657221603.350599][368108:368108] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01)
          [1657221603.350627][368108:368108] CHIP:DL:   Manufacturing Date: (not set)
          [1657221603.350649][368108:368108] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1657221603.350684][368108:368108] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00]
          [1657221603.350719][368108:368108] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657221603.350739][368108:368108] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00
          [1657221603.350773][368108:368108] CHIP:SVR: Manual pairing code: [749701123365521327694]
          [1657221603.350846][368108:368108] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 4dd11284
          [1657221603.353048][368108:368113] CHIP:DL: TRACE: Bluez mainloop starting Thread
          [1657221603.353167][368108:368111] CHIP:DL: TRACE: Bus acquired for name MATTER-3841
      disabled: true

    - label:
          "DUT starts BLE scan across all three advertising channels with a
          sufficient dwell time, interval, and overall duration of scan"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          1. Discover commissionables over BLE using DUT=chip-tool pairing

          Verify in TH as commissionee side:
          [1651743348.446452][5072:5072] CHIP:IN: New secure session created for device <FFFFFFFB00000000, 0>, LSID:2138 PSID:14881!
          [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step
      disabled: true

    - label: "DUT starts scan in background using BLE transport"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          1. Discover commissionables over BLE using DUT=chip-tool pairing command

          Verify in TH as commissionee side:
          [1651743348.446452][5072:5072] CHIP:IN: New secure session created for device <FFFFFFFB00000000, 0>, LSID:2138 PSID:14881!
          [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step
      disabled: true

    - label: "TH starts matter announcement using BLE transport"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          $ ./out/all-clusters-app/chip-all-clusters-app --wifi --discriminator 3841

          Verify in TH as commissionee side
          [1653087913.247229][8083:8083] CHIP:SVR: Server Listening...
          [1653087913.247636][8083:8083] CHIP:DL: Device Configuration:
          [1653087913.248094][8083:8083] CHIP:DL:   Serial Number: TEST_SN
          [1653087913.248608][8083:8083] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1653087913.249146][8083:8083] CHIP:DL:   Product Id: 32769 (0x8001)
          [1653087913.249610][8083:8083] CHIP:DL:   Hardware Version: 0
          [1653087913.250082][8083:8083] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1653087913.250739][8083:8083] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01)
          [1653087913.251234][8083:8083] CHIP:DL:   Manufacturing Date: (not set)
          [1653087913.251732][8083:8083] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1653087913.252171][8083:8083] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00]
          [1653087913.252710][8083:8083] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1653087913.253175][8083:8083] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00
          [1653087913.253681][8083:8083] CHIP:SVR: Manual pairing code: [749701123365521327694]
          [1653087913.254268][8083:8083] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 29f72814
      disabled: true

    - label:
          "DUT must find TH and provide onboarding data for validation.Pass
          Criteria: DUT is able to report the Onboarding payload as set on TH"
      PICS: MCORE.DD.DISCOVERY_BLE
      verification: |
          1. Discover commissionables over BLE using DUT=chip-tool pairing command

          Verify in TH as commissionee side:
          [1651743346.152716][5072:5075] CHIP:DL: Device E4:5F:01:0F:3B:B1 (Path: /org/bluez/hci0/dev_E4_5F_01_0F_3B_B1) Connected
          [1651743347.908807][5072:5075] CHIP:DL: BluezCharacteristicAcquireWrite is called, conn: 0xffffa0043700
          [1651743347.911151][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
          [1651743347.911349][5072:5075] CHIP:BLE: Write request received debug 0xffffa0043700
          [1651743347.911754][5072:5072] CHIP:BLE: local and remote recv window sizes = 6
          [1651743347.911829][5072:5072] CHIP:BLE: selected BTP version 4
          [1651743347.911877][5072:5072] CHIP:BLE: using BTP fragment sizes rx 244 / tx 244.
          [1651743348.006770][5072:5075] CHIP:DL: CHIPoBLE subscribe received
          [1651743348.007026][5072:5072] CHIP:IN: BLE EndPoint 0xaaaab7bb3c20 Connection Complete
          [1651743348.007132][5072:5072] CHIP:DL: HandlePlatformSpecificBLEEvent 32778
          [1651743348.007196][5072:5072] CHIP:DL: Receive kCHIPoBLEConnectionEstablished
          [1651743348.150980][5072:5075] CHIP:BLE: Indication confirmation, 0xffffa0043700
          [1651743348.199997][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
          [1651743348.200614][5072:5075] CHIP:BLE: Write request received debug 0xffffa0043700
          [1651743348.201013][5072:5072] CHIP:EM: Received message of type 0x20 with protocolId (0, 0) and MessageCounter:3306320356 on exchange 29381r
          [1651743348.201117][5072:5072] CHIP:EM: Handling via exchange: 29381r, Delegate: 0xaaaab7bb2a90
          [1651743348.201191][5072:5072] CHIP:SC: Received PBKDF param request
          [1651743348.201280][5072:5072] CHIP:SC: Peer assigned session ID 14881
          [1651743348.201349][5072:5072] CHIP:SC: Found MRP parameters in the message
          [1651743348.201520][5072:5072] CHIP:SC: Including MRP parameters in PBKDF param response
          [1651743348.201884][5072:5072] CHIP:IN: Prepared unauthenticated message 0xffffdcf2ef78 to 0x0000000000000000 (0)  of type 0x21 and protocolId (0, 0) on exchange 29381r with MessageCounter:2627159088.
          [1651743348.201989][5072:5072] CHIP:IN: Sending unauthenticated msg 0xffffdcf2ef78 with MessageCounter:2627159088 to 0x0000000000000000 at monotonic time: 0000000000FF6731 msec
          [1651743348.202196][5072:5072] CHIP:SC: Sent PBKDF param response
          [1651743348.298384][5072:5075] CHIP:BLE: Indication confirmation, 0xffffa0043700
          [1651743348.299274][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
          [1651743348.300132][5072:5075] CHIP:BLE: Write request received debug 0xffffa0043700
          [1651743348.300571][5072:5072] CHIP:EM: Received message of type 0x22 with protocolId (0, 0) and MessageCounter:3306320357 on exchange 29381r
          [1651743348.300655][5072:5072] CHIP:EM: Found matching exchange: 29381r, Delegate: 0xaaaab7bb2a90
          [1651743348.300741][5072:5072] CHIP:SC: Received spake2p msg1
          [1651743348.304696][5072:5072] CHIP:IN: Prepared unauthenticated message 0xffffdcf2ee58 to 0x0000000000000000 (0)  of type 0x23 and protocolId (0, 0) on exchange 29381r with MessageCounter:2627159089.
          [1651743348.304817][5072:5072] CHIP:IN: Sending unauthenticated msg 0xffffdcf2ee58 with MessageCounter:2627159089 to 0x0000000000000000 at monotonic time: 0000000000FF6798 msec
          [1651743348.305007][5072:5072] CHIP:SC: Sent spake2p msg2
          [1651743348.444144][5072:5075] CHIP:BLE: Indication confirmation, 0xffffa0043700
          [1651743348.444992][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
          [1651743348.445608][5072:5075] CHIP:BLE: Write request received debug 0xffffa0043700
          [1651743348.445888][5072:5072] CHIP:EM: Received message of type 0x24 with protocolId (0, 0) and MessageCounter:3306320358 on exchange 29381r
          [1651743348.445943][5072:5072] CHIP:EM: Found matching exchange: 29381r, Delegate: 0xaaaab7bb2a90
          [1651743348.446001][5072:5072] CHIP:SC: Received spake2p msg3
          [1651743348.446130][5072:5072] CHIP:SC: Sending status report. Protocol code 0, exchange 29381
          [1651743348.446202][5072:5072] CHIP:IN: Prepared unauthenticated message 0xffffdcf2eea8 to 0x0000000000000000 (0)  of type 0x40 and protocolId (0, 0) on exchange 29381r with MessageCounter:2627159090.
          [1651743348.446262][5072:5072] CHIP:IN: Sending unauthenticated msg 0xffffdcf2eea8 with MessageCounter:2627159090 to 0x0000000000000000 at monotonic time: 0000000000FF6825 msec
          [1651743348.446452][5072:5072] CHIP:IN: New secure session created for device <FFFFFFFB00000000, 0>, LSID:2138 PSID:14881!
          [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step
      disabled: true

    - label: "TH starts SoftAP and begin matter announcement procedure"
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope V1.0
          SoftAP commissioning not currently supported on TH=all-clusters-app
      disabled: true

    - label:
          "DUT starts Wi-Fi scan of all 2.4 GHz Wi-Fi channels allowed per its
          operational regulatory domain (channels 1, 6, and 11 are preferred)"
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope V1.0
          SoftAP commissioning not currently supported on TH=all-clusters-app
      disabled: true

    - label: "DUT scans using Wi-Fi in background"
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope V1.0
          SoftAP commissioning not currently supported on TH=all-clusters-app
      disabled: true

    - label: "TH starts SoftAP and begin matter announcement procedure"
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope V1.0
          SoftAP commissioning not currently supported on TH=all-clusters-app
      disabled: true

    - label:
          "DUT must find TH and provide onboarding data for validation.Pass
          Criteria: DUT is able to report the Onboarding payload as set on TH"
      PICS: MCORE.DD.DISCOVERY_SOFTAP
      verification: |
          Out of Scope V1.0
          SoftAP commissioning not currently supported on TH=all-clusters-app
      disabled: true

    - label:
          "With DUT and TH connected to the same network over IP, DUT performs
          service discovery using DNS-SD"
      verification: |
          1. TH is in commissioning mode and discoverable by DUT over IP through DNS-SD advertisements. This can also be verified using through the DUT's pairing command over IP.

          Verify in TH as commissionee side:
          $ ./out/all-clusters-app/chip-all-clusters-app
          [1674677598.616629][246997:246997] CHIP:IN: New secure session activated for device <FFFFFFFB00000000, 0>, LSID:34764 PSID:10974!
          [1674677598.616691][246997:246997] CHIP:SVR: Commissioning completed session establishment step
      disabled: true
