# 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.12.6. [TC-CONTENTLAUNCHER-10.7] Content Search Verification

PICS:
    - CONTENTLAUNCHER.S

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

tests:
    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Actor and Value as An Actors name, for example,
          Gaby sHoffman"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651225059.893636][4190:4195] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651225059.893741][4190:4195] CHIP:TOO:   LaunchResponse: {
          [1651225059.893814][4190:4195] CHIP:TOO:     status: 0
          [1651225059.893869][4190:4195] CHIP:TOO:     data: exampleData
          [1651225059.893924][4190:4195] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=0
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Channel and Value as Channel Name name, for
          example, PBS"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651225141.737648][4203:4209] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651225141.737778][4203:4209] CHIP:TOO:   LaunchResponse: {
          [1651225141.737854][4203:4209] CHIP:TOO:     status: 0
          [1651225141.737936][4203:4209] CHIP:TOO:     data: exampleData
          [1651225141.737994][4203:4209] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=1
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Character and Value as Characters name,for
          example, Snow White"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578539.231066][9699:9704] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578539.231135][9699:9704] CHIP:TOO:   LaunchResponse: {
          [1651578539.231184][9699:9704] CHIP:TOO:     status: 0
          [1651578539.231214][9699:9704] CHIP:TOO:     data: exampleData
          [1651578539.231247][9699:9704] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=2
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Director and Value as Directors name, for
          example, Spike Lee"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578561.129609][9706:9711] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578561.129678][9706:9711] CHIP:TOO:   LaunchResponse: {
          [1651578561.129725][9706:9711] CHIP:TOO:     status: 0
          [1651578561.129760][9706:9711] CHIP:TOO:     data: exampleData
          [1651578561.129796][9706:9711] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=3
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Event and Value as An Events name , for example
          Football games"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578612.348295][9717:9722] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578612.348350][9717:9722] CHIP:TOO:   LaunchResponse: {
          [1651578612.348388][9717:9722] CHIP:TOO:     status: 0
          [1651578612.348413][9717:9722] CHIP:TOO:     data: exampleData
          [1651578612.348437][9717:9722] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=4
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Franchise and Value as Franchises name,for
          example Star Wars"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT

          [1651578634.392516][9725:9730] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578634.392581][9725:9730] CHIP:TOO:   LaunchResponse: {
          [1651578634.392629][9725:9730] CHIP:TOO:     status: 0
          [1651578634.392662][9725:9730] CHIP:TOO:     data: exampleData
          [1651578634.392694][9725:9730] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=5
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Genre and Value as Genres name, for example
          Horror"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1652091775.613303][9916:9922] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_050A Command=0x0000_0002
          [1652091775.613395][9916:9922] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1652091775.613490][9916:9922] CHIP:TOO:   LaunchResponse: {
          [1652091775.613578][9916:9922] CHIP:TOO:     status: 0
          [1652091775.613620][9916:9922] CHIP:TOO:     data: exampleData
          [1652091775.613661][9916:9922] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=6
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As League and Value as Leagues name, for example
          NCAA"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT

          [1651578662.336318][9733:9738] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578662.336370][9733:9738] CHIP:TOO:   LaunchResponse: {
          [1651578662.336479][9733:9738] CHIP:TOO:     status: 0
          [1651578662.336505][9733:9738] CHIP:TOO:     data: exampleData
          [1651578662.336526][9733:9738] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=7
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Popularity and Value as Popularitys name"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578680.236952][9740:9745] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578680.237036][9740:9745] CHIP:TOO:   LaunchResponse: {
          [1651578680.237093][9740:9745] CHIP:TOO:     status: 0
          [1651578680.237135][9740:9745] CHIP:TOO:     data: exampleData
          [1651578680.237176][9740:9745] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=8
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Provider and Value as Providers name, for
          example Netflix"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578697.912544][9750:9755] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578697.912620][9750:9755] CHIP:TOO:   LaunchResponse: {
          [1651578697.912673][9750:9755] CHIP:TOO:     status: 0
          [1651578697.912715][9750:9755] CHIP:TOO:     data: exampleData
          [1651578697.912753][9750:9755] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=9
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Sport and Value as Sports name, for example,
          football"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578716.145536][9757:9762] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578716.145622][9757:9762] CHIP:TOO:   LaunchResponse: {
          [1651578716.145682][9757:9762] CHIP:TOO:     status: 0
          [1651578716.145725][9757:9762] CHIP:TOO:     data: exampleData
          [1651578716.145767][9757:9762] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=10
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As SportsTeam and Value as SportTeams name , for
          example Arsenel"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578735.341387][9764:9769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578735.341498][9764:9769] CHIP:TOO:   LaunchResponse: {
          [1651578735.341574][9764:9769] CHIP:TOO:     status: 0
          [1651578735.341630][9764:9769] CHIP:TOO:     data: exampleData
          [1651578735.341686][9764:9769] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=11
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As Type and Value as Types name, for example
          TVSeries,"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578755.904379][9773:9778] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578755.904459][9773:9778] CHIP:TOO:   LaunchResponse: {
          [1651578755.904517][9773:9778] CHIP:TOO:     status: 0
          [1651578755.904560][9773:9778] CHIP:TOO:     data: exampleData
          [1651578755.904604][9773:9778] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=Sports Example type=12
      disabled: true
